zoukankan      html  css  js  c++  java
  • 初始Django

    初始Django

    首先要知道Django是一种框架,但是框架又是什么呢?

    简单来说,框架的本质就是一系列功能集合体,然后可以把不同的功能放在不同的文件中,有了框架以后,就可以让我们写项目整个的周期大幅度的缩短,效率表的极大的提高,一个成熟合适的框架更是可以实现很多我们无法实现的功能

    软件开发架构简介

    ​ c/s 客户端 服务端

    ​ b/s 浏览器 服务端

    ​ bs本质也是cs

    HTTP协议

    超文本传输协议.
    应用层协议,为了实现某一类具体应用的协议,并且由某一运行在用户空间的应用程序去实现功能,基于c/s架构进行通信的.
    规定浏览器和服务端之间消息传输的数据格式

    HTTP事务处理过程

    基于客户.服务器模式,而且面向连接的,

    1. 客户与服务器建立连接;
    2. 又向它提出请求
    3. 服务器接收请求,根据请求返回响应文件作为应答;
    4. 客户与服务器关闭连接

    web(互联网)服务本质.

    ​ 也就是当你在浏览器输入网址回车发生那些事?

    ​ 1.浏览器向服务端发送请求

    ​ 2.服务端接受请求

    ​ 3.服务端返回相应响应

    ​ 4.浏览器接受相应 根据规则 渲染页面展示给用户看

    HTTP协议的四个特性

    1. 基于请求响应
    2. 基于TCP/IP之上,作用于应用层
    3. 无状态, (服务端没法保存用户的状态,)cookie session token...
    4. 无连接 (请求一次,我就响应一次,然后立即拔吊无情,从此毫无瓜葛)

    websocket(互联网套接字) 相当于是HTTP协议的一个大的补丁,支持长连接

    数据格式

    有两个,请求和响应,主要就是请求和响应.两者对应一样
    请求数据格式:

    • 请求首行(为了标识HTTP协议的版本,当前请求方式)

    • 请求头(一大堆K,V键值对,)

      accept:浏览器通过这个头告诉服务器,它所支持的数据类型
      Accept-Charset: 浏览器通过这个头告诉服务器,它支持哪种字符集
      Accept-Encoding:浏览器通过这个头告诉服务器,支持的压缩格式
      Accept-Language:浏览器通过这个头告诉服务器,它的语言环境
      Host:浏览器通过这个头告诉服务器,想访问哪台主机
      If-Modified-Since: 浏览器通过这个头告诉服务器,缓存数据的时间
      Referer:浏览器通过这个头告诉服务器,客户机是哪个页面来的 防盗链
      Connection:浏览器通过这个头告诉服务器,请求完后是断开链接还是何持链接

    • /r/n(换行)

    • 请求体(真正的数据,post请求才会有 而且是key:value形式,get不会)

    请求首行
    b'GET /index HTTP/1.1
    
    请求头
    Host: 127.0.0.1:8080
    
    Connection: keep-alive
    
    Cache-Control: max-age=0
    
    DNT: 1
    
    Upgrade-Insecure-Requests: 1
    
    User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.120 Safari/537.36
    
    Sec-Fetch-Mode: navigate
    
    Sec-Fetch-User: ?1
    
    Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3
    
    Sec-Fetch-Site: none
    
    Accept-Encoding: gzip, deflate, br
    
    Accept-Language: zh-CN,zh;q=0.9
    
    
    
    请求体
    

    User-Agent :User Agent中文名为用户代理,简称 UA,它是一个特殊字符串头,使得服务器能够识别客户使用操作系统及版本、CPU 类型、浏览器及版本、浏览器渲染引擎、浏览器语言、浏览器插件等。

    Accept:客户端可是别的内容类型列表

    Host:主机地址

    响应格式:

    • 响应首行(http版本 + 状态码 + 状态代码的文本描述)
    • 响应头(包含服务器类型,日期,长度,内容类型)
    • 响应体 服务器返回的HTML页面或者json数据

    响应状态码

    用特定的数字表示一些意思

    '''
    1XX:服务端已经成功接收到你的数据,正在处理,你可以继续提交其他数据
    
    2XX Success(成功状态码):
    
    	200 服务端成功响应客户端发来的消息
    
    	204 表示服务端接收的请求已经被成功处理,但是在返回的响应报文中不含实体的主体部分
    
    3XX Redirection(重定向状态码):
    
    	301 永久性重定向
    
    	302 临时性重定向
    
    4XX Client Error(客户端错误状态码)
    
    	400 表示请求报文中存在语法错误
    
    	401 表示发送的请求需要有通过HTTP认证的认证信息
    
    	403 表示对请求资源的访问被服务器拒绝了
    
    	404 服务器上无法找到请求的资源,是我们最常见的报错
    
    5XX Server Error(服务器内部错误状态码)
    
    	500 表示服务端在执行请求的时候发生了错误
    
    	503 表示服务器暂时处于超负载或者正在进行停机维护,无法处理请求
    '''
    

    请求方式

    get,post请求,(从字面理解,一个是要数据,一个是提交数据(eg:用户的登录))

    url www统一资源定位标志,网络地址

    纯手撸web框架

    import socket
    server = socket.socket()
    server.bind(('127.0.0.1', 8080))
    server.listen(5)
    
    while True:
        conn,addr = server.accept()
        data = conn.recv(1024)
        # print(data)
        conn.send(b'HTTP/1.1 200 OK
    
    ')
        data = data.decode('utf8')
        current_path = data.split('
    ')[0].split(' ')[1]
        # print(current_path)
        if current_path == '/index':
            with open(r"test.html", 'rb')as f:
                conn.send(f.read())
        elif current_path == '/login':
            conn.send(b'login')
        else:
            conn.send(b'404 error')
        conn.close()
    
    

    手撸过于麻烦,还好我们的python是调包侠

  • 相关阅读:
    WTL for Visual Studio 2012 配置详解
    自己动手让Visual Studio的Win32向导支持生成对话框程序
    改造联想Y480的快捷键(跨进程替换窗口过程(子类化)的实现——远程线程注入)
    Visual Studio 2012 Ultimate RTM 体验(附下载地址和KEY)
    VC++实现获取文件占用空间大小的两种方法(非文件大小)
    为Visual Studio添加默认INCLUDE包含路径一劳永逸的方法(更新)
    Winsdows 8 环境下搭建Windows Phone 开发环境
    Linq to Visual Tree可视化树的类Linq查询扩展API(译)
    检测元素是否在界面可显示区域
    Debug the Metro Style App:Registration of the app failed
  • 原文地址:https://www.cnblogs.com/jhpy/p/11710094.html
Copyright © 2011-2022 走看看