djangoi
1.1 Djnago简介
MVT :
Model: 模型,用于和数据库交互
View: 接受请求,处理请求,返回数据 封装了所有逻辑
Templatte: 模板,编写html\css\js代码的模板语言
2创建项目环境
查看django版本
1 Python
2 import django
3 django.get_version()
Pip list 查看当前环境安装的包
安装虚拟环境:
1 Sudo pip install virtualenv
2 Sudo pip install virtualenvwrapper
配置虚拟环境:mkvirtualenv django_py3 -p python3 (联网操作)
删除虚拟环境: rmvirtualenv django_py2(环境名)
切换环境:Workon py2
退出环境:deactivate
3 安装django
3.1安装django
安装django: pip install django==(版本号)1.11.11(pip list)
Cd
Django-admin startproject test
Ls
Tree :查看结构
3.2创建项目
先切换到桌面
Workon ()切入环境
Django-admin startproject newproject(创建项目名)
Ls查看目录
Cd newproject
Tree
创建模块(项目应用)
Python manange.py startapp user
Tree
1.6或1.8和最新版版本直接用users
注册到setting
创建模型
此时数据库中并没有该表
默认配置该轻量级数据库
安装数据库驱动
设置超级用户
注册
汉化
3.3运行服务器
Python manage.py runserver 5000(默认8000端口)
3.4创建模块
指令创建用户py文件Python manage.py start.py (模块名)
创建模块之后,注册子模块,注册到同名文件夹的setting中
3.5简单体验数据库交互
3.5.1定义表与字段
一张表对应一个类
类名对应表名,属性名对应字段名
3.5.2迁移数据库表
生成迁移文件
执行迁移文件
迁移成功并执行迁移成功后,数据库才产生表,继承于model
3.5.3后台展示
将设置的表注册到adminpy文件里
3.5.4创建modle,定义字段
更多字段
1、models.AutoField 自增列 = int(11)
如果没有的话,默认会生成一个名称为 id 的列,如果要显示的自定义一个自增列,必须将给列设置为主键 primary_key=True。
2、models.CharField 字符串字段
必须 max_length 参数
3、models.BooleanField 布尔类型=tinyint(1)
不能为空,Blank=True
4、models.ComaSeparatedIntegerField 用逗号分割的数字=varchar
继承CharField,所以必须 max_lenght 参数
5、models.DateField 日期类型 date
对于参数,auto_now = True 则每次更新都会更新这个时间;auto_now_add 则只是第一次创建添加,之后的更新不再改变。
6、models.DateTimeField 日期类型 datetime
同DateField的参数
7、models.Decimal 十进制小数类型 = decimal
必须指定整数位max_digits和小数位decimal_places
8、models.EmailField 字符串类型(正则表达式邮箱) =varchar
对字符串进行正则表达式
9、models.FloatField 浮点类型 = double
10、models.IntegerField 整形
11、models.BigIntegerField 长整形
integer_field_ranges = {
‘SmallIntegerField’: (-32768, 32767),
‘IntegerField’: (-2147483648, 2147483647),
‘BigIntegerField’: (-9223372036854775808, 9223372036854775807),
‘PositiveSmallIntegerField’: (0, 32767),
‘PositiveIntegerField’: (0, 2147483647),
}
12、models.IPAddressField 字符串类型(ip4正则表达式)
13、models.GenericIPAddressField 字符串类型(ip4和ip6是可选的)
参数protocol可以是:both、ipv4、ipv6
验证时,会根据设置报错
14、models.NullBooleanField 允许为空的布尔类型
15、models.PositiveIntegerFiel 正Integer
16、models.PositiveSmallIntegerField 正smallInteger
17、models.SlugField 减号、下划线、字母、数字
18、models.SmallIntegerField 数字
数据库中的字段有:tinyint、smallint、int、bigint
19、models.TextField 字符串=longtext
20、models.TimeField 时间 HH:MM[:ss[.uuuuuu]]
21、models.URLField 字符串,地址正则表达式
22、models.BinaryField 二进制
23、models.ImageField 图片
24、models.FilePathField 文件
更多字段的参数:
1、null=True
数据库中字段是否可以为空
2、blank=True
django的 Admin 中添加数据时是否可允许空值
3、primary_key = False
主键,对AutoField设置主键后,就会代替原来的自增 id 列
4、auto_now 和 auto_now_add
auto_now 自动创建—无论添加或修改,都是当前操作的时间
auto_now_add 自动创建—永远是创建时的时间
5、choices
GENDER_CHOICE = (
(u’M’, u’Male’),
(u’F’, u’Female’),
)
gender = models.CharField(max_length=2,choices = GENDER_CHOICE)
6、max_length
7、default 默认值
8、verbose_name Admin中字段的显示名称
9、name|db_column 数据库中的字段名称
10、unique=True 不允许重复
11、db_index = True 数据库索引
12、editable=True 在Admin里是否可编辑
13、error_messages=None 错误提示
14、auto_created=False 自动创建
15、help_text 在Admin中提示帮助信息
16、validators=[]
17、upload-to