web框架:用于web开发,包含了各种模块和功能的集合,便于快速完成开发任务的系统。
Django: 大而全
Flask : 小而精
Django项目创建
1 django-admin startproject project_name 创建项目
2 python manage.py startapp appName 创建应用
3 python manage.py runserver IP PORT 启动项目
MTV C模型
M:model
T:template
V::views
C:Controller(路由分配系统)
引入静态文件
1 将所有静态文件放到一个static的文件夹
2 将static文件夹放到应用下
3 STATIC_URL = '/static/' # 别名
STATIC_ROOT=(
os.path.join(BASE_DIR,"appBook/static"),
)
4 在模板首行加上{% load staticfiles %}
5 引入文件: {% static 具体路径 %}
一 路由分配系统
功能:客户端访问的url的路径(path)与视图函数一一映射关系
语法格式:
urlpatterns = [
url(正则表达式, views视图函数,参数,别名),
]
key: 通过路径分组传参数给视图函数
向server端传参数方式(*******):
(1)通过数据: http://1277.0.0.1:8080/blog/?id=1200
(2)通过路径 :http://1277.0.0.1:8080/blog/1200
url(r"blog/(d{4})")
无名分组:url(r'^(d{4})/$', year_query),
# year_query(request,2007)
有名分组:url(r'^(?P<year>d{4})/(?P<month>d{2})$', year_query),
# year_query(request,year=2010,month=12)
name参数: url(r'^regq/', reg, name="register"),
二 视图函数(views)
views文件:
def 函数名(request):
逻辑控制代码
return Httpresponse("")
请求对象: request
响应对象: httpresponse("")
request.method : 请求方式
request.GET : 存放 get请求数据
request.POST : 存放 post数据
Httpresponse("") ------>实例字符创对象
render ------>模板的渲染 render(request,"html",{key:value}) "html":模板(template) {key:value}: Context
redirect ------>跳转
三 模板语言
什么是模板?
模板就是 html+逻辑代码
模板语言: 渲染变量 {{}} 渲染标签 {% %}
目的: 将变量嵌入到html中
注意:
1 只要带有模板语法的html都成为模板
2 render方法渲染时 把后端变量嵌入到模板中
关于redirect与render的区别:
redirect走的是路径
render返回的是模板
{{变量}}
{{变量|filter:参数}}
{% Tag %}
自定义过滤器和标签:
过滤器与自定义标签
{{ i|multi:5 }}
{% multi2 4 6 5 %}
区别 :
filter:可以用于if等控制语句
simpletag: 可以接收多个参数
四 数据库与ORM(对象关系映射)
目的: 通过python代码实现对数据库的增删改查
在ORM中,对应关系
表名-----------类名
字段-----------类属性
表中的一条记录-------------类实例对象
class Person():
id=..
name=..
age=....
p=Person(id=3,name="egon",age=25)
p.save()
设计表关系:
create table book(
id int primary key,
name varchar(20),
price double(5,2),
)
python manage.py makemigrations
python manage.py migrate
查询API:
表.objects.all() 得到是QuerySet集合对象------ [obj1,obj2,]
表.objects.filter(id=2) 得到是QuerySet集合对象-------[obj1,]