Django默认ORM(一):基本配置
ORM基本点
ORM:关系对象映射。 定义一个类自动生成数据库的表结构。 数据库表数据类型: 数字、 字符串 时间。 ORM分为两种: DB First 数据库里先创建数据库表结构,根据表结构生成类,根据类操作数据库 Code First 先写类代码,执行代码创建数据库表结构 主流的orm都是code first。 django 的orm也是code first 所以Django orm: 根据类自动创建数据库表 根据类对数据库表中的数据进行各种操作
在app下的models虾面写表类
from django.db import models class UserInfo(models.Model): # 必须继承models.Model # django默认创建ID列,自增,主键 # 用户名列,字符串类型,指定长度 username = models.CharField(max_length=32) password = models.CharField(max_length=64)
别忘了注册app
INSTALLED_APPS = [ 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'xxxxxx', # 这里添加app的name ]
执行命令生成表结构
python manage.py makemigrations # 生成migrations临时文件 python manage.py migrate # 根据migrations直接生成数据库
修改配置文件,如果用sqllite就用上面配置,用mysql 就用虾面配置
# https://docs.djangoproject.com/en/1.10/ref/settings/#databases 官网文档 # DATABASES = { # sqlite 默认 # 'default': { # 'ENGINE': 'django.db.backends.sqlite3', # 'NAME': os.path.join(BASE_DIR, 'db.sqlite3'), # } # } # mysql 注意提前手动建立数据库 DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', 'NAME': '数据库名', 'USER': '用户名', 'PASSWORD': '密码', 'HOST': '127.0.0.1', 'PORT': '3306', }
redis 的默认端口号是6379
Django默认使用MySQLdb模块链接MySQL,但python3现在还没有MySQLdb,
所以改为用pymysql去连。在project项目名下的__init__.py
里面写上虾面的语句
import pymysql pymysql.install_as_MySQLdb()
这样子,模块就会根据配置文件连接数据库,根据models.py 创建数据库表,并加之增删改查。