首页 > 其他 > 详细

Django:ORM总结

时间:2020-05-30 10:12:55      阅读:42      评论:0      收藏:0      [点我收藏+]

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 自定义错误信息                        

 

Django:ORM总结

原文:https://www.cnblogs.com/bocaimao/p/12990722.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!