Django ORM创建数据库

时间:2022-02-13 16:10:05

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

二、程序目录

Django ORM创建数据库

三、配置文件

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="运营部")