模型
MVT中的Model
django 鼓励开发人员使用模块开发,这种开发模式在工作中被称为:解耦合。指在开发过程中将项目看成几个独立的模块进行开发,降低模块之间的耦合性,关联性。
ORM的使用
1. ORM框架:对象关系映射
作用:
是一个用来操作数据的框架
开发人员只需要关注业务逻辑的开发,不需要关心sql语句的编写,降低代码之间的耦合性
提高开发效率,方便后期管理和维护
2. 配置
django默认使用sqlite3 数据库,文档类型的数据库,特点是小,经常用来做测试开发用。
-
在settings中设置相关数据库的配置(这里使用的mysq数据库)
'default': { 'ENGINE': 'django.db.backends.mysql', # 引擎 'NAME': '1ku', # 库名 'USER': 'root', # 用户名 'PWASSWORD': '123456', # 密码 'HOST': '127.0.0.1', # 主机 ip地址 'PORT': '3306', # 端口号 }
-
在mysql 数据库当中创建一个跟配置信息同名的库
代码:create database 1ku charset=utf8;
-
安装pymysql
可以使用pycharm 安装:pip install pymysql
-
创建模型 models
class User (models.Model): id = models.AutoField(primary_key=True) name = models.CharField(max_length=32) age = models.IntegerField() gender = CharField(32)
-
数据迁移:将写好的数据模型,创建成数据库中的表
-
在数据前之前,检查相关配置是否正确
可能出现的错误1
错误原因:django默认使用的python2 版本的数据库模块,Mysqldb,python3 版本使用的是pymsql
解决方案:在项目主目录中的__init__.py 中增加两行代码
import pymysql pmysql.install_as_MySQLdb()
可能出现的错误2
错误原因:django 默认检测pymysql 版本
解决方案:修改源码,找到错误的地方,把相关的判断注释掉
-
执行数据迁移
先生成迁移文件:python manage.py makemigrations
可能出现的错误3
错误原因:python3 string没有decode 方法,有encode 方法
解决方案:找到错误的地方,将decode 改成 encode
再次执行 生成迁移文件的代码,生成迁移文件
-
生成迁移文件之后,进行数据迁移,也就是在数据库当中生成表结构
代码:python manage.py migrate
-
3. 站点管理
是一个Django 提供的管理后台
访问:127.0.0.1:8000/admin
-
先创建超级用户
python manage.py createsuperuser
-
注册模型到站点管理,在 admin.py 文件中加入代码
from django.contrib import admin from .models import * admin.site.register(User) admin.site.register(home)
4. 模型元数组
不是字段的数据
class Meta:
db_table = 'xxx' # 修改数据库生成的表的默认名字
verbose_name = '用户表' # 在站点后台以中文显示表名
verbose_name_plural = 'verbose_name' # 默认以复数显示