码迷,mamicode.com
首页 > 数据库 > 详细

Django ORM创建数据库

时间:2017-06-28 17:09:28      阅读:314      评论:0      收藏:0      [点我收藏+]

标签:syncdb   auto   mysq   file   message   默认   app   engine   模板引擎   

Python的WEB框架有Django、Tornado、Flask 等多种,Django相较与其他WEB框架其优势为:大而全,框架本身集成了ORM、模型绑定、模板引擎、缓存、Session等诸多功能。

基本配置

一、创建django程序

  • 终端命令:django-admin startproject sitename
  • IDE创建Django程序时,本质上都是自动执行上述命令

其他常用命令:

  python manage.py runserver 0.0.0.0
  python manage.py startapp appname
  python manage.py syncdb
  python manage.py makemigrations
  python manage.py migrate

  python manage.py createsuperuser

 

二、程序目录

技术分享

 

三、配置文件

1、数据库

settings配置

DATABASES = {
    ‘default‘: {
        ‘ENGINE‘: ‘django.db.backends.mysql‘,
        ‘NAME‘: ‘db5‘,
        ‘USER‘: ‘root‘,
        ‘PASSWORD‘: ‘‘,
        ‘HOST‘: ‘localhost‘,
        ‘PORT‘: ‘3306‘,
    }
}

  _init_.py

import pymysql
pymysql.install_as_MySQLdb()

models.py    创建类

技术分享
class UserInfo(models.Model):     #
                          """
                         员工
                         """
                nid=models.AutoField(primary_key=True)     #自增列 int类型
                username=models.CharField(max_length=32)    #字符串类型 最大长度
                password=models.CharField(max_length=64)    #密码长度尽量写大
               age=models.IntegerField(default=1)  #如果需要在新加一列有数字的话 需要设置默认值为1
                #ug_id
               ug=models.ForeignKey("UserGroup",null=True)    #增加外键   部门表目前没有数据 可以为空

            class UserGroup(models.Model):   #必须要继承的
                        """
                        部门
                        """
                 title=models.CharField(max_length=32)
models.py

settings.py注册上app  

INSTALLED_APPS = [
    ‘django.contrib.admin‘,
    ‘django.contrib.auth‘,
    ‘django.contrib.contenttypes‘,
    ‘django.contrib.sessions‘,
    ‘django.contrib.messages‘,
    ‘django.contrib.staticfiles‘,
    ‘app01‘,
]

创建数据表

命令:

python manage.py  makemigrations
python manage.py   migrate

  

ORM操作表  

技术分享
# 增删该查
from app01 import models
#新增
# models.UserGroup.objects.create(title="销售部")
# models.UserInfo.objects.create(user="root",password=‘pwd‘,age=18,ug_id=1)
#查找  all拿全部的
group_list=models.UserGroup.objects.all()
#group_list QuerySet类型(列表)
#QuerySet类型[obj,obj,obj]
print(group_list)
info_list=models.UserInfo.objects.all()
print(info_list)
#按照条件查询 filter  (id=1)
# group_list = models.UserGroup.objects.filter(id=1)
# 神奇的双下划线(id__lg=1)  id 大于1
#                (id__lt=1) id  小于1

 #删除  删除的时候先查询在进行删除
 #models.UserGroup.objects.filter(id=2).delete()

#更新   更新之前先进行查询 在更新
models.UserGroup.objects.filter(id=2).update(title="运营部")
View Code

 

Django ORM创建数据库

标签:syncdb   auto   mysq   file   message   默认   app   engine   模板引擎   

原文地址:http://www.cnblogs.com/niejinmei/p/7090273.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!