创建ORM
Django默认使用SQLite数据库,要操作mysql,要利用pymysql
1.要创建数据库
2.配置settings.py
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME':'xxxxx',
'USER': 'root',
'PASSWORD': '',
'HOST': '',
'PORT': '3306',
}
}
3.在__init__加载pymysql
python -m django --version ---3.0.3
加载可能出现错误,注释掉判断的语句就ok
import pymysql
# pymysql.version_info = (1, 3, 13, "final", 0)
pymysql.install_as_MySQLdb()
4.app下models.py
from django.db import models
class UserGroup(models.Model):
#默认定义id,自增加,为主键
title=models.CharField(max_length=32)
class UserInfo(models.Model):
id = models.BigAutoField(primary_key=True)
user = models.CharField(max_length=32)
pwd = models.CharField(max_length=64)
age=models.IntegerField(default=18)
#ug_id
ug=models.ForeignKey('UserGroup',null=True,on_delete=models.CASCADE)
5.注册app
python2.0之后版本,在创建app时默认注册app,如没有自行添加
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'app.apps.AppConfig',
]
6.创建数据库
cmd下:
python manage.py makemigrations
python manage.py migrate
7.在models.py可以自行新增,修改字段
数据相关的CURD操作
在视图函数views.py下
from django.http import HttpResponse
from django.shortcuts import render
#数据库相关操作
def index(request):
from app import models
#add
models.UserGroup.objects.create(title='技术部')
#find (id__lt==1)小于 __gt大于
group_list=models.UserGroup.objects.all()
group_list=models.UserGroup.objects.filter(id=1)
for row in group_list:
print(row.id,row.title)
#delete
models.UserGroup.objects.filter(id=2).delete()
#update
models.UserGroup.objects.filter(id=2).update(title='研发部')
return HttpResponse('test')