【1018 | Day 47】Django概述

1.HTTP协议

HTTP协议:超文本传输协议。

1.1 四大特性

  1. 基于TCP/IP之上作用于应用层
  2. 基于请求响应
  3. 无状态 cookie session token...
  4. 无连接
    长连接 websocket(HTTP协议的大补丁)

1.2 数据格式

  1. 请求格式

    • 请求首行(请求方式,协议版本。。。)
    • 请求头(一大堆k:v键值对)
    • \r\n
    • 请求体(真正的数据,发post请求的时候才有;如果是get请求,不会有)
  2. 响应格式
    • 响应首行
    • 响应头
    • \r\n
    • 响应体

1.3 响应状态码

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

  • 1XX:服务端已经成功接收到了你的数据 正在处理 你可以继续提交其他数据
  • 2XX:服务端成功响应(200请求成功)
  • 3XX:重定向
  • 4XX:请求错误(404 请求资源不存在 ,403 拒绝访问)
  • 5XX:服务器内部错误(500 )

1.4 请求方式

  • get请求:朝别人要数据
  • post请求:向别人提交数据(eg:用户登录)
  • url统一资源定位符

1.5 动静态网页

  • 静态网页(数据是写死的 万年不变)
  • 动态网页(数据是实时获取的),例如:
    • 后端获取当前时间展示到前端
    • 后端获取数据库中的数据展示到前端

2. Web框架

2.1 框架三组成

第一步:socket部分

第二步:路由与视图函数对应关系

基于wsgiref模块

  • 解决
    • 手动书写socket
    • 手动处理http格式数据
  • 优点
    • urls.py ——> 路由与视图函数对象关系
    • views.py ——> 放的是视图函数(处理业务逻辑的)

第三步:模板语法

2.2 三大主流web框架

Django

  • 大而全,自带的功能特别特别多 类似于航空母舰

  • 有时候过于笨重

Flask

  • 小而精,自带的功能特别特别少 类似于游骑兵
  • 第三方的模块特别特别多,如果将flask第三方模块全部加起来,完全可以超过django
  • 比较依赖于第三方模块

Tornado

  • 异步非阻塞
  • 牛逼到可以开发游戏服务器

2.3 三大框架区别

​ A:socket部分
​ B:路由与视图函数对应关系
​ C:模板语法

Django:
    A用的别人的  wsgiref
    B自己写的
    C自己写的

Flask
    A用的别人的  werkzeug(基于wsgiref)
    B自己写的
    C用的别人的  jinja2

Tornado
    三者全是自己写的

3. Django安装

3.1 注意事项

​ 1.计算机的名称不能有中文
​ 2.一个pycharm窗口就是一个项目
​ 3.项目名里面尽量不要用中文

3.2 django版本问题

​ 1.X 2.X 现在市面上用的比较多的还是1.X
​ 推荐你使用1.11.9~1.11.13

3.3 django安装

​ pip3 install django==1.11.11

3.4 验证django是否安装成功

​ 命令行直接敲django-admin

3.5 小结

  1. 一个django项目就类似于是一所大学,而app就类似于大学里面的学院。django其实就是用来一个个应用的,一个app就相当于一块独立的功能。

    • 用户功能

    • 管理功能

  2. django支持任意多个app

4. Django使用

4.1 如何使用

  • 命令行使用

    创建django项目
    django-admin startproject mysite
    启动django项目
    python manage.py runserver
    创建应用app
    python manage.py startapp app01

注意:新创建的app需要你去settings配置文件中注册,pycharm只会帮你注册第一个你在创建项目的时候写的应用

注意:

  • 使用命令行创建django项目 不会自动帮你创建templates文件夹只能自己创建
  • settings文件中 需要你手动在TEMPLATES写配置os.path.join(BASE_DIR, 'templates')

  • pycharm使用

    在启动django项目的时候 你一定要确保一个端口只有一个django项目

    项目名
    跟项目名同名的文件夹
    settings.py 暴露给用户的配置文件
    urls.py 路由与视图函数对应关系
    应用名
    migrations文件夹 存放数据库迁移记录的
    admin.py django后台管理
    apps.py 注册相关
    models.py 模型类
    tests.py 测试文件
    views.py 存放视图函数
    templates文件夹 存放html文件
    manage.py django入口文件

猜你喜欢

转载自www.cnblogs.com/fxyadela/p/11701192.html