Django ORM创建数据库

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

 

posted @ 2017-06-28 16:16  karina梅梅  阅读(186)  评论(0编辑  收藏  举报