• Django框架导读


      一.虚拟环境

      1.什么是虚拟环境

      对真实的python解释器的一个拷贝版本

      是事实有效的,可以独立存在运行解释python代码

      可以在计算机上拷贝多个虚拟环境

      2.为什么要使用虚拟环境

      保证真实环境的纯净性

      框架的多版本共存

      方便做框架的版本迭代

      降低多框架共存的维护成本

      3.安装虚拟环境

      (1).通过pip3安装虚拟环境:

        -- pip3 install virtualenv

      (2).前往目标文件夹:

        -- cd 目标文件夹 (D: Virtualenv)

      (3).创建纯净虚拟环境:

        -- virtualenv 虚拟环境名  (pu3-env1)

      (4). 终端启动虚拟环境:

        -- cd py3-env1Scripts

        -- activate

      (5). 进入虚拟环境下的python开发环境

        -- python3

      (6).关闭虚拟环境:

        -- deactivate

      (7).PyCharm的开发配置

        添加: 创建项目 -> Project Interpreter -> Existing interpreter -> Virtualenv Environment | System Interpreter -> 目标路径下的python.exe

        删除: Setting -> Project -> Project Interpreter -> Show All

      二.web架构

      web应用 架构

      C/S架构 | B/S 架构

      client server: 客户端服务器架构, C++

      browser server: 浏览器服务器架构, java.Python

      三.http协议

      (1).什么是http协议

      

    HTTP(HyperText Transport Protocol) 是超文本传输协议
    基于TCP/IP协议基础上的应用层协议,底层实现仍为socket
    基于请求-响应模式: 通信一定是从客户端开始, 服务器接收到客户端一定会做出对应响应
    无状态: 协议不对任何一次通信状态和任何数据做保存
    无连接: 一次连接只完成一次请求-响应, 请求-响应完毕后会立即断开连接

      (2). http工作原理(事务)

      

    一次http操作称之为一个事务,工作过程可分为四步
    1.客户端与服务端建立连接
    2.客户端发生一个http协议指定格式的请求
    3.服务器端接收请求后,回应一个http协议指定格式的响应
    4.客户端将服务器的响应显示展现给用户

      (3).状态码

      

    1打头: 消息通知
    2打头: 请求成功
    3打头: 重定向
    4打头: 客户端错误
    5打头: 服务器错误

      四.原生socket

      关注服务器端

      

    #完成B/S架构项目的设计
    #Borswer已经完成
    #Server需要手动书写socket,以http协议方式完成响应
    import socket
    # 设置响应头(包含响应行)
    RESP_HEADER = b'HTTP/1.1 200 OK
    Content-type:text/html;charset = utf-8
    
    '
    # 设置服务器socket相关信息
    server = socket.socket()
    server.bind(('localhost',8808))
    server.listen(5)
    print('服务:http://localhost:8808')
    
    while True:
        # 获取B以http协议发来的请求
        client, address = server.accept()
        data = client.recv(1024)
        # 数据报文 包含 请求行 请求头 请求体
        print(data)
        # 手动以http协议完成响应
        # 数据报文 包含 响应行 响应头 响应体
        client.send(RESP_HEADER)
        # /index => 响应主页
        # /login => 登录页面
        # 错误 => 404
        # 数据data, 字节形式 => 字符串形式
        strData = str(data,encoding = "utf-8")
        # 解析请求的数据,分析得到路由
        my_route = strData.split('
    ')[0].split(' ')[1]
        # 后台没有设置的路由,统统以404来处理
        dt = b'404'
        # 设置的路由返回响应的页面文件
        if my_route == '/index':
            with open('02_index.html','rb') as f:
                dt = f.read()
        if my_route == '/login':
            with open('02_login.html','rb') as f:
                dt = f.read()
        # /favicon.ico该请求是往后台请求标签图标
        if my_route == '/favicon.ico':
            with open('favicon.ico','rb') as f:
                dt = f.read()
        # 响应体
        client.send(dt)
        # 一次循环,代表一次响应,也就是一次事务的完成,要关闭http请求连接
        client.close()
  • 相关阅读:
    1048. Find Coins (25)
    return view 详解 MVC
    EF Power Tool 代码生成器 反向生成
    对新数据库使用 Code First
    一个成熟的网站的架构设计应该是这样的
    公司业务的设计思想感悟
    请给奋斗中的男人们一次机会
    大话西游感悟
    充满恶意的单词
    lisp的解释器
  • 原文地址:https://www.cnblogs.com/xiaocaiyang/p/10216431.html
Copyright © 2020-2023  润新知