DJANGO基础
第一部分:
Http协议:一种Http 短连接。
请求头:
connection: keep-alive (默认的)\r\n
token: dbnsjandjsandjsandjsandjksa (自定义)
\r\n\r\n:表示请求头数据到这里结束
请求体:
请求的内容
响应部分
响应的状态码:
200 请求已成功
403 服务器已经理解请求,但是拒绝执行它。
404 请求失败,请求所希望得到的资源未被在服务器上发现,就是没有这个界面。
500 服务器遇到了一个未曾预料的状况,导致了它无法完成对请求的处理。一般来说,这个问题都会在服务器端的源代码出现错误时出现。
502 (bad gateway)作为网关或者代理工作的服务器尝试执行请求时,无效的响应,此时要寻找网络问题。
响应体:(就是一大块字符串)
用户用户看到的所有的内容
第二部分:
web重要的组成部分.
a. socket服务,
提供了服务器,我们的浏览器就是一个客户端,这就是cs框架。
b. 路由系统:
将 uri 就是浏览器后边的路径与处理逻辑函数进行对应。
c. 模板引擎渲染
将数据库中的数据与html进行相结合, 模板的渲染。渲染就是对mysql的数据和我们的html网页,通过js,jq技术进行的一个数据整合。
第三部分:基础的django用法:
第一个问题:如何将我们的数据,传入到我们的HTML页面中?
渲染的方式:
后台:
name = "字符串"
前台(HTML端):
{{name}} 解释:两个大于号包裹,我们的数据就可以在页面中使用,例如列表中的数据,这个针对于普通变量,字符串和整型
列表:
方式一:
{% for item in mylist%}
{{item}}
{% endfor %}
利用for来将数据一个个展示出来,注意展示的数据需要两个{{}}包裹,同时for循环只要一对,但是需要%号。
方式二:按照索引来取值
{{mylist.0}}
{{mylist.1}}
字典:可以通过for来进行取值,方式和列表一致。
{% for key, val in mydict.items %}
{{key}} {{val}}
{% endfor %}
第二个问题:HTML页面中的数据,我们又要怎么传回来?一个重要的请求头,啥都有。
url:
request: 用户所有的请求信息:
请求方式: request.method
获取post中的内容: request.POST.get('key')
POST的话一般用一个表单:form表单里使用。
<form action="/add_class/" method="post">
班级名称: <input type="text" name="classname">
<input type="submit" value="提交">
</form>
可以看到发送的格式是post,name确定我们的变量名,例如这里变量名为classname
obj=request.POST.get('classname')
这样我们就可以获取到我们要的值了。
获取get中的内容 :request.GET.get('key')
准确的说:利用
<a href="/del_class/?id={{ item.id }}">删除</a>
利用这个?就赋值给了id变量,后端就可以进行使用,判断逻辑。
重定向:
redirect('/login/') 重定向,可以是一个路由,网页地址都可以跳转,当然会在原来页面直接进行跳转,不会新开的。
小结:
这里有三个函数,对于目前的很多功能,都会用到
render :往回发一个静态页面,以及数据
redirect:重定向,进行跳转
HttpResponse:发回去一个字符串,会在页面显示。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步