1-Web应用
-bs和cs架构:http请求交互
-mysql,redis:典型的cs架构的软件
-docker,es:http协议,符合restful规范
-bs架构好处,客户端不用更新
-bs本质也是cs,socket
-一个线程处理一个连接
2-Http协议
-请求协议:请求首行,请求头,请求体
-响应协议:响应首行,响应头,响应体
-特点:
-无状态无连接:会话保持---cookie---session---token
-基于请求响应:长轮询,websocket协议
-基于tcp/ip之上的应用层
-http版本区别
3-Web框架
-写了一些底层代码,只让开发者关注业务逻辑,在固定的位置写固定代码,完成对一次http请求的处理
4-Django简介
-python:django,flask,sanic,fastapi,tornado,webpy
-go:beego,gin....
-java:spring一统天下,ssh,ssm,springboot,springcloud
-版本:1.x 2.2.2 3.x
-MTV:
-MVC:
-mvp,mvvm,mvvc(架构,mysql多版本并发控制)
5 路由
-url,path,re_path
-四个参数('地址,正则表达式',函数内存地址,默认值,别名)
-有名分组,无名分组
-路由分发
-反向解析:视图函数中,模板中使用
-名称空间(多个app路由名重名)
-5个转换器
-自定义转换器(一般不用)
6 视图层
-视图函数,视图类
-请求对象(一堆,能够拿出http请求的所有东西)
-响应对象(四件套,本质都是HttpResponse)
-响应头加东西
-加cookie
7 模板层
-模板语法
{{}}
{%%}
. 深度取值
dic['name']
dic.get('name')
test
-模板渲染
# ================================django模板修改的视图函数
# from django.template import Template,Context
# now=datetime.datetime.now()
# t=Template('<html><body>现在时刻是:<h1>{{current_date}}</h1></body></html>')
# #t=get_template('current_datetime.html')
# c=Context({'current_date':str(now)})
# html=t.render(c)
#
# return HttpResponse(html)
render(request,'模板',context)
# 本质是
t=get_template('模板')
c=Context({'current_date':str(now)})
html=t.render(c) #字符串(dtl执行完成,渲染完的字符串)
HttpResponse(html)
页面静态化(bbs项目的首页静态化)
-过滤器(内置)
-