今日所学内容:

    一、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—周二相关推荐

  1. [Flume]使用 Flume 来传递web log 到 hdfs 的例子

    [Flume]使用 Flume 来传递web log 到 hdfs 的例子: 在 hdfs 上创建存储 log 的目录: $ hdfs dfs -mkdir -p /test001/weblogsfl ...

  2. Docker 调试技巧

    『重用』容器名 但我们在编写/调试Dockerfile的时候我们经常会重复之前的command,比如这种docker run --name jstorm-zookeeper zookeeper:3.4 ...

  3. drools。drools_使用Drools跟踪输出

    drools.drools Drools 6包含一个跟踪输出,可以帮助您了解系统中正在发生的事情,事物执行的频率以及多少数据. 这也有助于理解Drools 6现在是基于目标的算法,它使用链接机制链接评 ...

  4. 使用Drools跟踪输出

    Drools 6包含一个跟踪输出,可以帮助您了解系统中正在发生的事情,事物执行的频率以及多少数据. 这也有助于理解Drools 6现在是基于目标的算法,它使用链接机制链接评估规则. 有关此的更多详细信 ...

  5. 20201006将音频为48kHz采样率的mp4转为44.1kHz的步骤

    20201006将音频为48kHz采样率的mp4转为44.1kHz的步骤 千千静听v5.1.0 MKVToolNix v48.0 MediaInfo 0.7.86 Copyright (c) Medi ...

  6. 免费课程《微信公众号开发》开讲啦!!!

    微信硬件开发交流QQ群(488969821 )免费讲解<微信公众号开发知识>: 课程地点:微信硬件开发交流QQ群488969821        时间:2015/09/29 周二晚 20: ...

  7. (2013.01.18-2013.07.15)179天的学习小记

    (2013.01.18-2013.07.15)179天的学习小记 好久没有做个小小结咯,我的第一天学习小记是从2011.07.04开始,那时说好了在大学期间要每天记录,自我监督,就这样,这事也干了两年 ...

  8. axure 模板_《惢客创业日记》2019.09.03(周二) 用Axure管理项目流程

    今天,花了一整天的时间,搭建了一个本地服务器,并且,把Axure生成的网页系统部署在了IIS上.之所以,用Axure来把整个项目的资源做一个汇总,主要目的有三个: 第一.用Axure实现基于网页的项目 ...

  9. 《惢客创业日记》2019.09.24(周二)高龄创业者的健康博弈(十四)

    昨天,分享了我的精力汤配制方案中的第一类,根茎蔬菜类,今天,继续分享其他的四种类型的食材. 第二类是坚果类. 我一般会放入一个核桃.三个腰果.十粒枸杞和一小勺黑芝麻,如果没有腰果,也可以放入几粒生花生 ...

  10. 《惢客创业日记》2021.09.28(周二)聊到了凌晨3点

    今天下午,坐上了去北京的火车,开始一次不寻常的旅程.虽然,昨天准备了一天的资料,但还是感觉有很多东西没有准备好.其中,最重要的是粉丝卡的流程图没有画出来,如果没有一个详细的流程图,很难在短时间内把整个 ...

最新文章

  1. 「镁客·请讲」全盛科技吕盛:将侦测、跟踪、识别、管控融于一体,做低空安全守卫者...
  2. python3读写excel文件_python3 循环读取excel文件并写入json操作
  3. ABAP--通过LDB_PROCESS函数使用逻辑数据库
  4. 关于list 数据类型 和 ndarray 数据类型获取索引的小坑
  5. 配置eclipse,创建类/方法时自动生成作者、创建日期、方法功能等注释
  6. 【翻译】Brewer's CAP Theorem CAP定理
  7. java jstl标签库_JSTL标签库
  8. 【ACL2021】具有可解释的、鲁棒的、并具有泛化能力的三篇问答系统相关论文
  9. 6.5移相器(Phasers)
  10. AllWinner T113 升级篇
  11. MySQL最新版MySQL8.0百度云下载
  12. RHCSA-Day1 --- Linux介绍及环境搭建
  13. 关于野火mini led的学习
  14. 使用 Java 进行 HL7 编程
  15. linux如何安装qq输入法
  16. 深度学习-8.实践方法论
  17. android 小白点代码,Android实现小圆点显示未读功能
  18. 华氏摄氏度与摄氏度的换算
  19. nvarchar 和varchar区别
  20. 匀光匀色批处理软件(支持去雾)

热门文章

  1. 区分BPSK、QPSK、8PSK和区分8QAM、16QAM、32QAM、64QAM
  2. 南方cass快捷键命令修改在哪_南方测绘cass快捷键命令大全,南方测绘cass常用的快捷键命令有哪些?...
  3. adb 黑域app_黑域使用教程 进入黑域app详细教程
  4. 【游戏开发框架】自制Unity通用游戏框架UnityXFramework,详细教程(Unity3D技能树 | tolua | 框架 | 热更新)
  5. 灵格斯怎么屏幕取词_灵格斯屏幕取词翻译插件
  6. 文献笔记(7)(2017ISSCC 14.3)
  7. SVN客户端下载及安装
  8. 比色皿洗涤不干净会造成很大实验误差
  9. UDS诊断基础知识简介-ISO14229
  10. 游戏手柄延迟测试软件,六款免费网络延迟测试工具