mvc
c:处理用户请求逻辑
m:跟db交互,获取数据,返回给c
v:视图
目的:解耦
django
M:模型:对应mvc的m
v:视图:对应c
t:模板:对应v
不同的项目需要不同的包,如果所有项目都在一个环境下,会出现无用的包
sudo pip3 install virtualenv 虚拟环境
sudo pip3 install virtualenvwrapper 虚拟环境的扩展包
mkvirtualenv -p python3 虚拟环境名称 创建虚拟环境
deactivate 推出虚拟环境
workon 切换虚拟环境
rmvirtualenv 删除虚拟环境
在虚拟环境下安装django
pip install django==1.11
项目包含多个模块
博客:项目
应用:用户模块——内容模块
创建项目
django-admin startproject 项目名称
cd到项目里面
python manage.py startapp 应用
注意:用pycharm创建的项目 不需要手动添加应用
ORM:对象-关系-映射
ORM目的和好处:提高开发效率
缺点:牺牲项目执行的效率
支持流行的数据库
ORM 通过元类原理
元类:创建类的
Object 元类
object 元类创建出来的
元类完美继承object
M:
字段:支持很多字段
update_time = DateTime(auto_now=True)
create_time = DateTime(auto_now_add=True)
七牛云:原图——缩略图
MySQL数据——mysql数据
先取消索引——
四大特性:原子 隔离 持久 一致
关系:
一对一
一对多
多对多
生成迁移文件
python3 manage.py makemigrations
python3 manage.py migrate
模型管理器:objects
属性——contains = 'xxx'包含
属性——isnull = True
F对象
之前的查询都是对象的属性与常量值比较,两个属性怎么比较呢?
答:使用F对象
filter(bread__gt=F('bcomment') * 2)
Q对象
多个过滤器逐个调用表示逻辑与关系,同sql语句中where部分的and关键字。