Django:ORM总结

ORM即:关系对象映射(Object Relational Mapping)

常见两种建表方式
dbfirst :创建数据库表结构(第一步在数据库中进行操作),根据表结构创建类,之后根据类操作数据库
codefirst:先写code,例如先写每个类,之后根据类生成表,数据库表是后创建的(主流)

django中遵循 Code Frist 的原则,即:根据代码中定义的类来自动生成数据库表

ORM操作:通过类创建数据库 转成sql语句,执行创建表 django的ORM支持修改表结构 

1.创建类
1.-根据自动表创建数据库
a.     app下创建models.py文件,并且导入

from django.db import models  #导入

b.  注册app: project同名的settings.py文件进行配置

Django默认数据库配置如下,若要使用其他数据库,需在下面配置中添加。

1 INSTALLED_APPS = [
2     'django.contrib.admin',
3     'django.contrib.auth',
4     'django.contrib.contenttypes',
5     'django.contrib.sessions',
6     'django.contrib.messages',
7     'django.contrib.staticfiles',
8     'app01',
9 ]
1 DATABASES = {
2     'default': {
3         'ENGINE': 'django.db.backends.sqlite3',
4         'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
5     }
6 }

 

注:若使用MySQL数据库

Django内部默认使用mysqldb模块连接mysql,python3没有此模块,所以Django使用pymysql连接,在项目同名的__init__文件下,添加以下代码即可:
import pymysql
pymysql.install_as_MySQLdb()

 

c.  建表后,执行命令:

python manage.py makemigrations
python manage.py migrate

 


字段:
- 字符串、
- 数字、
- 时间、
- 二进制
自增(primary_key=True)

字段的参数:
null     ->db是否可以为空
default     ->默认值
primary_key     ->主键
db_column     ->列名
de_index     ->索引
unique     ->唯一索引
unique_for_date         ->对日期唯一索引
unique_for_month     ->对月份唯一索引
unique_for_year         ->对年份唯一索引
choices     ->Django admin中显示下拉框,避免连表查询
auto_now     ->创建时,自动生成时间
auto_now_add     ->更新时,自动更新为当前时间
blank     ->Django admin中是否可以为空
verbose_name     ->Django admin中显示字段中文
editable     ->Django admin中是否可以被编辑
error_messages     ->Django admin中错误信息
help_text         ->Django admin中帮助信息,小hint
validators         ->Django form 自定义错误信息                        

 

posted @ 2020-05-30 08:20  菠菜猫  阅读(158)  评论(0编辑  收藏  举报