标签:hat web file filter translate 自己 col 超过 行迁移
出品人:灰度
在讲解之前先来说下MVC框架,M指的是模型(model)的意思是应用程序的核心,v指的是视图(view)主要用来显示内容,C呢就是控制器(Controller)主要用来控制输入.MVC是一种编写WEB应用的一种设计模式,他主要的目的是解耦,怎么理解这就话,其实就是将业务代码和视图代码分离,由控制器来进行调用进行数据的输入输出操作。在Django中不叫MVC叫MVT(其实是一样的)。
1.理解什么是ORM模型
首先理解什么是ORM,简单来说就是通过代码来操作数据库,通过对象来映射对应的sql代码,无需编写sql语句,自动生成数据库表,它主要提供是三个功能:(1)允许我们通过面向对象的方式来操作数据库(2)根据我们自己设计的模型,自动在数据库中生成我们需要的数据表(3)可以很方便的配置,让我们对数据库进行切换操作
2.这里我们拿mysql为例,Django默认使用自带的sqlite3数据库,我们来修改成我们自己的,修改settings.py文件,找到DATABASES
将其修改成下面的数据库
在__init__.py中添加mysql驱动,前提是已经安装了pymysql驱动
3.模板中的字段属性
在模板中定义属性有三条规则
(1)不能使用python 的关键字 例如:os
(2)不能使用双下划线,Django对双下划线敏感,涉及到Django查询问题
(3)定义属性时,必须指定属性的类型
4.说道类型,下面列举下Django中的类型
BooleanField:布尔字段,值为True或False。
CharField(max_length=字符长度):字符串
TextField:大文本字段,一般超过4000个字符时使用
IntegerField:整数
FloatField:浮点数
DateField:日期
TimeField:时间
DateTimeField:日期时间
FileField:上传文件字段。
ImageField:继承于FileField,对上传的内容进行校验,确保是有效的图片。
DecimalField(max_digits=None, decimal_places=None):十进制浮点数。
参数max_digits表示总位数。
参数decimal_places表示小数位数
5.字段属性约束-------选项
null:如果为True,表示允许为空,默认值是False。
blank:如果为True,则该字段允许为空白,默认值是False。
* 对比:null是数据库范畴的概念,blank是表单验证证范畴的。
db_column:字段的名称,如果未指定,则使用属性的名称。
db_index:若值为True, 则在表中会为此字段创建索引,默认值是False。
default:默认值。
primary_key:若为True,则该字段会成为模型的主键字段,默认值是False,一般作为AutoField的选项使用。
unique:如果为True, 这个字段在表中必须有唯一值,默认值是False。
下面让我们写个模型吧
执行迁移命令
python manage.py makemigrations #在终端项目下执行
python manage.py migrate #生成数据表
6.数据库相关操作
在这里,小编说声抱歉写的不够细,具体的看说明文档吧,我已经将网址写在这里,写的还是很详细的
参考网址:http://python.usyiyi.cn/translate/django_182/topics/db/queries.html
一、 查询
1、单条数据查询get()
例如查询刚才我们创建的表中的数据
HeroInfo.objects.get(name=‘lisi‘)
2、查询表中所有的数据all()
HeroInfo.objects.all() # 这里说下它的返回值类型是QuerySet(查询集)
3、过滤器查询filter() # 可以理解为where
HeroInfo.objects.filter(name=‘lisi‘)相当于 HeroInfo.objects.all().filter(name=‘list‘)
4、模糊查询contains 结尾 endswith 开头startswith
HeroInfo.objects.get(name__contains=‘li‘) 相当于 select ....from HeroInfo where name like ‘%li%‘
5.空查询 isnull
6.比较查询 大于get 小于let
7.取反 exclude
二、引用Q对象查询复杂的语句
通常Q对象用来查询逻辑条件时用到 not and or
提示下先引入from django.db.models import Q
Q 对象可以使用& 和| 操作符组合起来
Q(question__startswith=‘Who‘) | Q(question__startswith=‘What‘)
F对象用于对象间的比较
BookInfo.objects.filter(bread__gt=F(‘bcomment‘))
标签:hat web file filter translate 自己 col 超过 行迁移
原文地址:http://www.cnblogs.com/syketw23/p/7667904.html