• 11.8知识总结(web应用程序、手写web框架、Django框架等)


    一、 web应用程序

            1.1 什么是web?

           Web应用程序是一种可以通过Web访问的应用程序,用户只需要有浏览器即可,不需要再安装其他软件

    案例:淘宝网、京东网、博客园、等都是基于web应用的程序

           应用程序有两种模式C/S、B/S。C/S是客户端/服务器端程序,也就是说这类程序一般独立运行。而B/S就是浏览器端/服务器端应用程序,这类应用程序一般借助IE等浏览器来运行。WEB应用程序一般是B/S模式

           1.2 Web应用程序的优点

    1. 你所需要的只是一个适用的浏览器
    2. 节省硬盘空间
    3. 它们不需要更新,因为所有新的特性都在服务器上执行,从而自动传达到用户端;
    4. 过跨平台使用的例如Windows,Mac,Linux等等

         1.3   Web应用程序的缺点

    严重依赖服务端的正常运行、服务端一旦出问题、客户端里面受到影响

    二、  手写web框架

           2.1 什么是web框架?

    别人写好的框架(就是一堆目录和文件),我们只需要在固定的位置写代码即可

           2.2 HTTP协议的特性

    1. 四大特性
        # 基于请求响应
        # 基于TCP协议之上的应用层协议
        # 无状态
        # 短链接
        
    2. 请求数据格式
        请求首行(请求方式、协议、版本号、路径)
        请求头
        \r\n
        请求体(get请求方式是没有请求体的、POST请求方式才有请求体)
    3. 响应数据格式
        响应首行()
        响应头
        \r\n
        响应体()
    4. 响应状态码
        1xx
        2xx
        3xx
        4xx
        5xx

     每日一问? 如何做到在网址栏中输入什么后缀就返回什么后缀

    解决思路:

    1. 服务端要知道你网址栏里输入的是什么后缀
    2. 服务端做判断,然后做对应的返回

    三、  wsgiref模块的使用

         当前的服务端存在的问题

    1. socket部分需要我们自己每次都要写
    2. 我们需要自己每次处理HTTP格式的数据,自己转码、自己切分、自己取值等
    3. 没有解决高并发问题

    那如何优化以上的问题?

    使用wesgire模块

         3.1 什么是wsgiref模块?

     wsgiref模块是一个内置的模块,直接可以拿来使用,无需安装
    它帮助我们封装了socket部分,另外,它也解决了部分的高并发问题,但是,它能够解决的并发量并不高
    他们也会帮我们把HTTP格式的数据做封装处理,也就是说不需要我们在自己处理

          3.3 常见

    views.py # 主要用来写业务逻辑的,它也称为是视图文件
    urls.py  # 主要用来写后缀和视图函数的对应关系,它也称为是路由文件
    template # 存储项目中用到的模板文件,html文件,模板文本,提供了一些模板语法.

    四、  Django框架

          4.1 如何使用Django

         1..需要先安装: pip install django

         2.版本的问题
        django1.x: 以前的老项目在使用,它跟2.x的版本区别不是特别大
        django2.x:主流的项目使用的都是2.x的版本,有一点区别的跟1.x
        django3.x: 新版本了,现在有不少的项目确实在选择3.x的版本

         3 .django的版本要和你的Python的版本要匹配,django3用个2.7版本,不行
             django2----->python3.6以上
             django1----->python3.6

          4. 如何创建django项目
        # 先切换路径到你想存储的位置
        命令行创建:
            django-admin startproject 项目名称
            django-admin startproject myfirst
        pycharm创建项目
            File
                New project
                    django

         5. 注意事项:
        1. 项目名称必须是英文,不能是中文
        2. 一个pycharm窗口只打开一个django项目

         6.  如何启动项目
         # 先把路径切到跟manage.py同级目录下面
         命令行启动
            python3 manage.py runserver
            python3 manage.py runserver 8001
    '''Next, start your first app by running python manage.py startapp [app_label].'''

       7. 创建应用
         python manage.py startapp 应用名
         python manage.py startapp app01

        4.2 应用

    Django框架就类似于是一所大学,一所大学也要有二级学院
    应用就类似于是二级学院,一个Django框架至少要有一个应用

    taobao
        user
        order
        address

    注:应用名要做到见名知意,符合变量的命名规则即可,但是,教学使用app01 02 03...

       4.3  主要文件的介绍

    mysecond            # 项目名称
        app01            # 应用名称
            migrations    # 它是迁移数据的记录
            __init__.py
            admin.py    # django自带的后台管理系统
            apps.py        # 暂且忽略,写一些注册的东西
            models.py   # 模型层,跟数据库打交道的,以后创建表就在这里写
            tests.py    # 测试脚本
            views.py    # 视图文件,主要用来写核心的业务逻辑的
        
        mysecond
            __init__.py
            settings.py    # Django的全局配置文件
            urls.py        # 路由文件,写地址的后缀和视图函数的对应关系
            wsgi.py        # wsgiref服务器
        templates        # 存储HTML文件的
        db.sqlite3        # Django自带的小型数据库
        manage.py        # Django的启动文件,入口文件

        

  • 相关阅读:
    C++-STL-map:map插入元素的几种方式【用数组方式插入数据】【用insert函数插入pair数据】【用insert函数插入value_type数据】
    空气运动-Air隐私协议
    2022-07-25 网工进阶(二十一)BGP-路由反射器、联盟、聚合
    每日一练——有效的括号
    RS-485设计指南
    自适应控制——仿真实验二 用Narendra方案设计模型参考自适应系统
    翻译: 网页排名PageRank算法的来龙去脉 以及 Python实现
    东北大学acm暑期夏令营指针与引用初步
    java项目-第142期ssm美食推荐系统-ssm毕业设计_计算机毕业设计
    (14)学习笔记:动手深度学习(Pytorch神经网络基础)
  • 原文地址:https://blog.csdn.net/weixin_66010453/article/details/134290564