zoukankan      html  css  js  c++  java
  • day 56 Django介绍

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

    2.数据格式
    #请求格式
    请求首行(请求方式,协议版本。。。)
    请求头(一大堆k:v键值对)

    请求体(真正的数据 发post请求的时候才有 如果是get请求不会有)

    #响应格式
    响应首行
    响应头

    响应体


    3.响应状态码---用特定的数字表示一些意思
    1XX:服务端已经成功接收到了你的数据 正在处理 你可以继续提交其他数据
    2XX:服务端成功响应(200请求成功)
    3XX:重定向
    4XX:请求错误(404 请求资源不存在 403 拒绝访问)
    5XX:服务器内部错误(500 )

    #请求方式
    get请求
    朝别人要数据
    post请求
    向别人提交数据(eg:用户登录)

    #url统一资源定位符


    手撸web框架

    #基于wsgiref模块

     1)手动书写socket
     2)手动处理http格式数据

    该模块实现了上面两个手动的过程
    根据功能不同拆分成了不同的py文件
    urls.py 只放路由与视图函数对应关系
    views.py 放视图函数(函数,类)
    拆分完成之后 如果想要添加功能,你仅仅只需要在上面两个地方动手脚就可以了

    #动静态网页
    静态网页
    数据是写死的 万年不变
    动态网页
    数据是实时获取的
    eg:
    1.后端获取当前时间展示到前端
    2.后端获取数据库中的数据展示到前端

    疑问:
    如何将后端获取的数据 传递给html页面
    后端获取的数据 传递给html页面 >>>: 模板的渲染

    #jinja2模块  
    pip3 install jinja2

    模板语法(极其贴近python后端语法)
    <p>{{ user }}</p>
    <p>{{ user.name }}</p>
    <p>{{ user['pwd'] }}</p>
    <p>{{ user.get('hobby') }}</p>


    {% for user_dict in user_list %}
    <tr>
    <td>{{ user_dict.id }}</td>
    <td>{{ user_dict.name }}</td>
    <td>{{ user_dict.pwd }}</td>
    </tr>
    {% endfor %}


    python三大主流web框架
    #Django:
    大而全 自带的功能特别特别多 类似于航空母舰
    有时候过于笨重

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

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


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

    Django:
    A用的别人的 wsgiref
    B自己写的
    C自己写的
    Flask
    A用的别人的 werkzeug(基于wsgiref)
    B自己写的
    C用的别人的 jinja2
    Tornado
    三者全是自己写的

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

    #django版本问题
    1.X 2.X 现在市面上用的比较多的还是1.X
    推荐你使用1.11.9~1.11.13

    #django安装
    pip3 install django==1.11.11

    #如何验证django是否安装成功
    命令行直接敲django-admin

    #如何理解django里的app

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

    比如:
    用户功能
    管理功能


    django支持任意多个app

    如何使用Django
    #命令行使用
    创建django项目
    django-admin startproject mysite
    启动django项目
    python manage.py runserver
    创建应用app
    python manage.py startapp app01

    #pycharm使用

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


    #注意:
    1.新创建的app需要你去settings配置文件中注册
    pycharm只会帮你注册第一个你在创建项目的时候写的应用
    2.使用命令行创建django项目 不会自动帮你创建templates文件夹
    只能自己创建
    3.settings文件中 需要你手动在TEMPLATES写配置
    os.path.join(BASE_DIR, 'templates')

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

  • 相关阅读:
    无法打开内核设备"\.Globalvmx86": 系统找不到指定的文件问题记录
    docker使用switch to Linux Containers切换不成windows问题
    js设计模式——发布订阅模式
    剑指offer系列——求1+2+…+n
    【转载】CSS3弹性盒布局方式
    【转载】.btc勒索病毒删除+还原文件(Dharma家族新成员)
    【转载】chrome浏览器的跨域设置——包括版本49前后两种设置
    【转载】SVN使用教程总结
    【转载】vue.js移动端app
    【转载】将web项目打包成手机app的方法
  • 原文地址:https://www.cnblogs.com/wwei4332/p/11700424.html
Copyright © 2011-2022 走看看