zoukankan      html  css  js  c++  java
  • Django基础(一)

    Django

     

     

    django是可以自动重启的(重启机制:内部监测到文件修改就会重启),但是有时候反应速度较慢;也有可能在你代码没写完时就重启会报错

    基础

    HTTP协议:

    超文本传输协议

    1. 四大特性

      1. 基于tcp/ip协议之上的应用层
    2. 基于请求相应的(被动响应)
    3. 无状态(不保存用户状态){因无状态,cookie,session,token....}
    4. 无连接(长连接 websocket)

    1. 数据格式

    1. 请求格式
       请求行 (请求方式,版本协议)

    请求头 (一大堆k:v键值对)类似于开路先锋,提前告知对方一些必要信息

    /r/n

    请求体(真正的数据,发post请求是才有,如果是get请求不会有)
    1. 响应格式
       响应行

    响应头

    /r/n

    响应体

    1. 响应状态码

    1. 用特定的数字表示一些意思
      1xx: 服务端已经成功接收到数据,正在处理,可以提交其他数据

    2xx: 服务端成功响应(如200,请求成功)

    3xx: 重定向(当你没有登录,自动跳转)

    4xx:请求错误(404,请求资源不存在; 403,拒绝访问,)

    5xx:服务器内部错误(500服务器出现问题)
    请求方式:

    get请求

    朝人要数据(没有请求体)

    post请求

    朝别人提交数据(用户登录)

    URL 统一资源定位符

    让人提交数据

    简单地wbe框架

    1. 手动编写:1)socket

    1. 手动处理http格式数据

    2. http数据自己处理

    2. 基于wsgiref模块
      1. urls.py 只放路由于视图函数对应关系
      1. view.py 只放视图函数
      3. views.py 处理后端业务逻辑的视图函数(视图函数不单单是函数
    4. 规律:只要你想加功能只需要在urls.py中添加一条对应的关系再去views.py 写一个函数视图
    3. 动静态网页
      1. 静态网页
        1. 数据是写死了,万年不变
      1. 动态网页
        1. 数据是实时获取的
            1. eg:
              1. 后端获取当前时间展示到前端
              1. 后端获取数据库中的数据展示到前端  

    #### 疑问: 如何将后端获取的数据 传递给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

    1. 优点: 大而全,自带功能多,类似于航空母舰
    1. 缺点:有时过于笨重

     

    Flask

    1. 缺点: 小而精,自带功能很少,类似于游骑兵,比较依赖于第三方模块

    1. 优点: 第三方模块特别多,如果将flask第三方模块加起来完全可以超过Django

    Tornado

    异步非阻塞

     

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

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

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

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

     

    Django安装:pip intsall Django(版本)

    确认是否安装成功:Django-admin

    命令行式:

    创建项目:

    Django-admin startproject mysite

    启动项目:

    python manage.py runserver

    创建应用:

    python manage.py startapp app01

     

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

    注意:

        1. 使用命令行创建项目,不会自动创建templates文件夹,只能手动建
    1. settings文件中手动写[os.path.join(BASE_DIR, 'templates')]

    pycharm创建:

    能够自动创建template文件夹和路径配置

    也能够支持创建一个应用并注册。

  • 相关阅读:
    Apache Solr入门教程(初学者之旅)
    Codeforces 631 (Div. 2) E. Drazil Likes Heap 贪心
    Codeforces 631 (Div. 2) D. Dreamoon Likes Sequences 位运算^ 组合数 递推
    Codeforces 631 (Div. 2) C. Dreamoon Likes Coloring 思维or构造
    python中的类型转换
    MVC3.0在各个版本IIS中的部署
    get和post的区别
    Vue和React对比
    谈谈你对web标注和W3c的理解和认识
    js中的undefined 和null
  • 原文地址:https://www.cnblogs.com/zfb123-/p/11720780.html
Copyright © 2011-2022 走看看