django整理
MVC: M为model模块。V为View,视图。C为Controller,控制器。
MVT:M为model模块。v为view视图。T为模板。
创建虚拟环境:mkvirtualenv -p python3 虚拟环境名称
查看虚拟环境:workon
使用虚拟环境:workon 虚拟环境名
删除虚拟环境:rmvirtualenv 虚拟环境名称
退出虚拟环境:deactivate
创建项目:django-admin startproject 项目名称
settings.py是项目的整体配置文件。
urls.py是项目的URL配置文件。
创建应用:python manage.py startapp 应用名称
运行:python manage.py runserver 端口号
ORM框架:O就是object,对象.R就是relation关系数据库,M就是Mapping,映射. django中内嵌了ORM框架,不需要直接面向数据库编程,而是定义模型类,通过模型类和对象完成数据表的增删改查操作。
生成迁移文件:python manage.py makemigrations
执行迁移文件:python manage.py migrate
设置界面:
打开set文件
LANGUAGE_CODE = 'zh-hans'
TIME_ZONE = 'Asia/Shanghai'
创建管理员 :
python manage.py createsuperuser
127.0.0.1:8000/admin
url规则使用正则表达式定义。
视图就是在views.py中定义的视图函数。
在模板中输出变量语法如下,变量可能是从视图中传递过来的,也可能是在模板中定义的。{{变量名}}
在模板中编写代码段语法如下:{%代码段%}
定义模板代码:
<html>
<head>
<title>图书列表</title>
</head>
<body>
<h1>{{title}}</h1>
{%for i in list%}
{{i}}
{%endfor%}
</body>
</html>
url(r'^$', views.index)配置详细页url,\d+表示多个数字,小括号用于取值
ORM:是一种为了解决面向对象与关系数据库存在的互不匹配的现象的技术。
属性命名限制:
不能是python的保留关键字。
不允许使用连续的下划线,这是由django的查询方式决定的,在后面会详细讲解查询。
定义属性时需要指定字段类型,通过字段类型的参数指定选项,语法如下:
BooleanField:布尔字段,值为True或False。
NullBooleanField:支持Null、True、False三种值。
CharField(max_length=字符长度):字符串。
参数max_length表示最大字符个数。
TextField:大文本字段,一般超过4000个字符时使用。
IntegerField:整数。
DecimalField(max_digits=None, decimal_places=None):十进制浮点数。
参数max_digits表示总位数。
参数decimal_places表示小数位数。
FloatField:浮点数。
DateField[auto_now=False, auto_now_add=False]):日期。
参数auto_now表示每次保存对象时,自动设置该字段为当前时间,用于"最后一次修改"的时间戳,它总是使用当前日期,默认为false。
参数auto_now_add表示当对象第一次被创建时自动设置当前时间,用于创建的时间戳,它总是使用当前日期,默认为false。
参数auto_now_add和auto_now是相互排斥的,组合将会发生错误。
TimeField:时间,参数同DateField。
DateTimeField:日期时间,参数同DateField。
FileField:上传文件字段。
关系型数据库的关系包括三种类型:
ForeignKey:一对多,将字段定义在多的一端中。
ManyToManyField:多对多,将字段定义在任意一端中。
OneToOneField:一对一,将字段定义在任意一端中。BookInfo,HeroInfo
Django中也能实现类似于join查询
一模型类关联属性名一模型类属性名条件运算符=值+