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 创建数据库表,并加之增删改查。