1 web框架的本质:socket客户端和服务端通信,socket遵循http协议(短连接,无状态),规定了数据格式(消息头,消息体);传输的数据本质上是字符串
2 django:
django安装(django-admin可执行文件)
- pip3 install django
创建django工程
- django-admin startproject mysite
- mysite
-- urls.py
-- settings.py
-- wsgi.py
wsgi是一个协议,wsgiref模块实现wsgi协议,实现socket
- manage.py
配置:
- 配置模板路径
-- TEMPLATES(DIRS:[os.path.join(BASE_DIR, "templates"])
- 配置静态文件路径
STATICURL:"static"
STATICFILES_DIRS: os.path.join(BASE_DIR, "static")
可以开始写程序
- urls.py
-- url ---> 函数login
-- 编写函数login(request)
--- request
---- request.POST # 字典(消息体)
---- request.GET # 字典(url上的数据)
---- request.method #字符串
--- return HttpResponse("字符串“)
--- return render(request, "login.html", {"msg": "site"})
--- login.html查找路径是从TEMPLATES下的dirs下开始查找
--- render:查找模板,实现模板渲染(模板 + 数据); 数据通过参数字典{"msg": "site"})传递
--- return redirect("login")
-- 编写模板
--- 模板引擎特殊标记
--- 字符串
{“msg”:"site}
{{ msg }}}
--- 列表索引
{
“msg”:"site,
"msg2": [v1, v2] ,
}
{{ msg2.0}}
{{ msg2.1 }}
--- 列表循环
{
“msg”:"site,
"msg2": [v1, v2] ,
}
<ul>
{% for item in msg2 %}
<li>{{ item }}</li>
{% endfor %}
</ul>
--- 字典列表
{
“msg”:"site,
"msg2": [
{ “k1”:"v1", "k2":"v2" },{"k1":v3, "k2":"v4"}
] ,
}
<table>
{% for item in msg2 %}
<tr>
<td>{{ item.k1 }}</td>
<td>{{ item.k1 }}</td>
</tr>
{% endfor %}
</table>
今日内容:
班级表(单表)的操作(增删改查 + 新url的方式)