7.09—057—周二
今日所学内容:
一、web请求流程
二、自定义一个简单的web框架
三、Django的基础
一、web请求流程
先从本地DNS域名服务器找相对的IP地址如果没有,找 根DNS服务器——>顶级DNS服务器——>权威DNS服务器——>二级域名的DNS服务器
补充:字符串和字节的转换:
>>> s = "hello"
>>> bytes(s,encoding='utf-8')
b'hello'
>>> b = bytes(s,encoding='utf-8')
>>> str(b, encoding='utf-8')
HTTP协议简单传输
请求头(界面):
GET / HTTP/1.1
Host: 127.0.0.1:8080 (主机名)
Connection: keep-alive (保持链接)
Cache-Control: max-age=0 (缓存不失效)
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3
Accept-Encoding: gzip, deflate, br
Accept-Language: zh-CN,zh;q=0.9
请求体(界面):
就是数据部分,与请求头用\r\n\r\n作为分隔符分开
响应头(后台):
HTTP/1.1 200 OK (最简单的响应头)
响应体(后台):
就是用户能能看到的内容
补充:HTTP:默认端口是80
https:默认端口是443
状态码:2XX: 200 (OK) | 3XX: 302 304 | 4XX 404(not found) 403(forbidden 禁止访问)|
5XX: 500 (服务端代码错误) 502 (网关错误 bad gateway)
了解更多可以看肯《HTTP图解》这本漫画书,日本作家
二、自定义一个简单的web框架
需求:想要通过输入不同的 url, 获得不一样的相应内容
路由系统:
routes = [ ('/xxx', f1), ('/ooo', f2), ('/hhh', f3) ]
def f1():
return b'this is xxxx'
def f2():
return b'this is oooo'
自定义的web框架流程:
a. sokect 服务端
b. uri 和 函数的 对应关系
路由系统
c. 将html代码和mysql的数据进行融合 (自己定制规则 , 使用第三方的工具)
模板引擎渲染
web框架的分类:
第一种维度分类
- a,b,c ----> tornado
- a(用第三方), b, c ----> django wsgiref uwsgi
- a(第三方),b, c(第三方) -----》 flask
第二种维度分类
- django
- 其他
三、Django的基础
安装、创建都可用CMD或pycharm
CMD:安装 pip3 install django==1.11.10 -i https://pypi.tuna.tsinghua.edu.cn/simple
创建 django-admin startproject mysite
目录介绍:
setting.py:用户自定义的各种配置
urls.py: 路由文件
wsgi.py: 启动socket服务端的 文件
mange.py: 管理文件 python mange.py 各种命令
创建django完成之后:
a. 配置模板文件路径:
'DIRS': [os.path.join(BASE_DIR, 'templates')] (python3中已经做好)
b. 配置静态资源的文件路径:
STATIC_URL = '/static/'
STATICFILES_DIRS = (
os.path.join(BASE_DIR, 'static'), (逗号不能少)
)
c. 注释中间件
在setting.py中,从MIDDLEWARE中 把 'django.middleware.csrf.CsrfViewMiddleware',注释掉
业务逻辑函数:
def index(request):
return render(request, "index.html")
业务逻辑:
uri和函数的对应关系:
urlpatterns = [
# url(r'^admin/', admin.site.urls),
url(r'^index/', index),
]
转载于:https://www.cnblogs.com/Chinesehan/p/11160196.html
7.09—057—周二相关推荐
- [Flume]使用 Flume 来传递web log 到 hdfs 的例子
[Flume]使用 Flume 来传递web log 到 hdfs 的例子: 在 hdfs 上创建存储 log 的目录: $ hdfs dfs -mkdir -p /test001/weblogsfl ...
- Docker 调试技巧
『重用』容器名 但我们在编写/调试Dockerfile的时候我们经常会重复之前的command,比如这种docker run --name jstorm-zookeeper zookeeper:3.4 ...
- drools。drools_使用Drools跟踪输出
drools.drools Drools 6包含一个跟踪输出,可以帮助您了解系统中正在发生的事情,事物执行的频率以及多少数据. 这也有助于理解Drools 6现在是基于目标的算法,它使用链接机制链接评 ...
- 使用Drools跟踪输出
Drools 6包含一个跟踪输出,可以帮助您了解系统中正在发生的事情,事物执行的频率以及多少数据. 这也有助于理解Drools 6现在是基于目标的算法,它使用链接机制链接评估规则. 有关此的更多详细信 ...
- 20201006将音频为48kHz采样率的mp4转为44.1kHz的步骤
20201006将音频为48kHz采样率的mp4转为44.1kHz的步骤 千千静听v5.1.0 MKVToolNix v48.0 MediaInfo 0.7.86 Copyright (c) Medi ...
- 免费课程《微信公众号开发》开讲啦!!!
微信硬件开发交流QQ群(488969821 )免费讲解<微信公众号开发知识>: 课程地点:微信硬件开发交流QQ群488969821 时间:2015/09/29 周二晚 20: ...
- (2013.01.18-2013.07.15)179天的学习小记
(2013.01.18-2013.07.15)179天的学习小记 好久没有做个小小结咯,我的第一天学习小记是从2011.07.04开始,那时说好了在大学期间要每天记录,自我监督,就这样,这事也干了两年 ...
- axure 模板_《惢客创业日记》2019.09.03(周二) 用Axure管理项目流程
今天,花了一整天的时间,搭建了一个本地服务器,并且,把Axure生成的网页系统部署在了IIS上.之所以,用Axure来把整个项目的资源做一个汇总,主要目的有三个: 第一.用Axure实现基于网页的项目 ...
- 《惢客创业日记》2019.09.24(周二)高龄创业者的健康博弈(十四)
昨天,分享了我的精力汤配制方案中的第一类,根茎蔬菜类,今天,继续分享其他的四种类型的食材. 第二类是坚果类. 我一般会放入一个核桃.三个腰果.十粒枸杞和一小勺黑芝麻,如果没有腰果,也可以放入几粒生花生 ...
- 《惢客创业日记》2021.09.28(周二)聊到了凌晨3点
今天下午,坐上了去北京的火车,开始一次不寻常的旅程.虽然,昨天准备了一天的资料,但还是感觉有很多东西没有准备好.其中,最重要的是粉丝卡的流程图没有画出来,如果没有一个详细的流程图,很难在短时间内把整个 ...
最新文章
- 「镁客·请讲」全盛科技吕盛:将侦测、跟踪、识别、管控融于一体,做低空安全守卫者...
- python3读写excel文件_python3 循环读取excel文件并写入json操作
- ABAP--通过LDB_PROCESS函数使用逻辑数据库
- 关于list 数据类型 和 ndarray 数据类型获取索引的小坑
- 配置eclipse,创建类/方法时自动生成作者、创建日期、方法功能等注释
- 【翻译】Brewer's CAP Theorem CAP定理
- java jstl标签库_JSTL标签库
- 【ACL2021】具有可解释的、鲁棒的、并具有泛化能力的三篇问答系统相关论文
- 6.5移相器(Phasers)
- AllWinner T113 升级篇
- MySQL最新版MySQL8.0百度云下载
- RHCSA-Day1 --- Linux介绍及环境搭建
- 关于野火mini led的学习
- 使用 Java 进行 HL7 编程
- linux如何安装qq输入法
- 深度学习-8.实践方法论
- android 小白点代码,Android实现小圆点显示未读功能
- 华氏摄氏度与摄氏度的换算
- nvarchar 和varchar区别
- 匀光匀色批处理软件(支持去雾)
热门文章
- 区分BPSK、QPSK、8PSK和区分8QAM、16QAM、32QAM、64QAM
- 南方cass快捷键命令修改在哪_南方测绘cass快捷键命令大全,南方测绘cass常用的快捷键命令有哪些?...
- adb 黑域app_黑域使用教程 进入黑域app详细教程
- 【游戏开发框架】自制Unity通用游戏框架UnityXFramework,详细教程(Unity3D技能树 | tolua | 框架 | 热更新)
- 灵格斯怎么屏幕取词_灵格斯屏幕取词翻译插件
- 文献笔记(7)(2017ISSCC 14.3)
- SVN客户端下载及安装
- 比色皿洗涤不干净会造成很大实验误差
- UDS诊断基础知识简介-ISO14229
- 游戏手柄延迟测试软件,六款免费网络延迟测试工具