Django学习
Django
MVC
View:负责数据的显示和呈现,View是对用户的直接输出
Controller:负责从用户端收集用户的输入,可以看成提供View的反向功能,主要处理用户交互。
Model:用于封装与应用程序的业务逻辑相关的数据及对数据的处理方法,是Web应用程序中用于处理应用程序的数据逻辑部分,Model通常只提供功能性的接口,通过这些接口可以获取Model的所有功能
MVT
Model:负责业务对象与数据库(ORM)的对象
View:负责业务逻辑,并在适当的时候调用Model和Template
Template:负责把页面展示给用户
Django中还有一个url分发器(也可以叫做路由),主要用来将一个个URL页面的请求分发给不同的View进行处理,View再调用相应的Model和Template。
CS/BS
客户端和服务器交互模型
Server
Web后端
Python
Java
Php
Go
Django
Flask
Client
Browser
MVC
软件架构风格
将数据操作、业务处理、界面展示进行了拆分
核心思想:解耦合
不是标准
松耦合
Model
模型
封装数据和交互操作
CRUD
View
视图
是用来将数据呈现给用户
Controal
控制器
接受用户输入
用来协调Model与View的关系,并对数据进行操作,筛选
流程
控制器接受用户请求
调用模型,获取数据
控制器将数据展示到视图中
Hello Django
1、虚拟环境
deactivate
workon
mkvirtualenv
rmvirtualenv
创建虚拟环境
退出虚拟环境
再次进入虚拟环境
删除虚拟环境
2、安装
pip install django==1.11.7
pip install django==1.11.7 -i https://pypi.douban.com/simple
3、创建项目
django-admin startproject XXX
项目结构
XXX
manage.py
XXX
管理整个项目结构
以后的命令基本都通过它来调用
init
setting
urls
wsgi
项目全局配置文件
根路由
用在新项目部署上,前期用不上
4、启动项目
python manage.py runserver
默认运行在本机的8000端口上
还可以添加参数
使用开发者项目服务器
{[ip:]port}
0.0.0.0
代表本机所有的ip
5、创建一个应用
python manage.py startapp App
App结构
models
apps
views
tests
init
migrations
视图函数
模型
应用配置
单元测试
init
迁移目录
将应用注册到项目的setting中的INSTALLED_APPS中
7、编写一个请求
6、请求流程
Browse->urls
models->views
views->models
views->response
编写一个路由
url(p1,p2)
p1 正则匹配规则
urlpatterns
p2 对应的视图函数
编写视图函数
只是默认第一个参数是response
必须返回response
本质上还是一个函数
HttpResponse
render
8、连接数据库
默认在django中集成数据库
修改数据库
轻量级数据库
没用户名,没密码
SOLite
常用的场景 Android,IOS,WP
实际上都是关系型数据库
mysql
在settings中的DATABASES中进行修改
驱动
渲染
简写
mysql-python
pymysql
mysqlcient
会伪装
install_as_mysqldb()
最好用,最常用
迁移
生成迁移
执行迁移
USER
PASSWORD
HOST
PORT
NAME
ENGINE
连接数据库的名字
引擎
python manage.py makemigrations
python manage.py migratiate
才会真正的在数据库产生表
9、数据惭怍
10、显示在模板中
数据查询
更新
存储数据
删除
增删改查
创建对象进行save()
模型.object.all()
模型.object.get()
基于查询
save()
基于查询
delete()
在填坑
模板的兼容性很强
先挖坑
浏览器不认模板
{{var}}
上下文是一个字典{var:value}
key就是var,value就是要传入的值
模板渲染的时候上下文传递进来
不传入不会报错
多传入也会自动优化掉
在到达浏览器之前,已经进行了转化。将模板装华为html
for支持
11、数据级联
foreignKey
多记一
一获取多
一对多
多获取一
多的set
就是一个书写的属性