zoukankan      html  css  js  c++  java
  • Django 框架 # 51

    day51 Django


    Django_daima

    1.创建一个Django项目


    1.创建Django启动项


    0.无启动项,进入启动页.png
    1.创建启动项.png
    2.templates文件创建.png


    1.Django下载.png
    2.2创建一个Django项目2.png
    2.创建一个Django项目.png
    3.mysite项目配置.png
    4.创建Django应用.png
    5.启动django.png
    6.启动django成功.png
    7.pycharm快捷创建djangoxm.png
    8.2创建django项目和应用.png
    8.快速创建django应用.png
    DJango创建项目成功.png

    templates


    1.Web框架.png
    1.纯手撸web框架.py
    2.Django版本图 以1.11版本为主.png
    2.类型转换技巧.py
    3.基于wsgiref撸.py
    urls.py
    views.py
    创建应用.png


    myfirstdjangodemo

    app01


    migrations


    __init__.py
    admin.py
    apps.py
    models.py
    tests.py
    views.py

    myfirstdjangodemo


    2. setting templates文件创建.png
    2.1setting templates 空.png
    2.2 settings yingyongzhuce.png
    2.3应用注册.png
    __init__.py
    settings.py
    urls.py
    wsgi.py

    templates


    4.get_db.html
    11.登录示例.html

    manage.py


    readme

      1 Django
      2 
      3 1.建议手撸(Django)版的Web框架
      4 cs与bs 架构
      5     1.客户端 服务端
      6     2.浏览器 服务端
      7     本质:bs 也是 cs
      8 
      9 HTTP协议
     10     四大特性
     11         1.基于TCP/IP作用于应用层的协议
     12         2.基于请求响应
     13         3.无状态
     14             cookie,session,token(携带状态)
     15         4.无连接
     16             长链接websocket
     17 
     18     数据格式
     19         1.请求首行
     20         2.请求头
     21         3.请求体
     22     响应状态码
     23         1xx
     24         2xx
     25         3xx
     26         4xx
     27         5xx
     28 
     29 
     30 2.基于wsgiref模块 及拆分成不同的文件之后,加一个功能只需要在两个地方修改代码即可
     31         1.urls.py 路由与视图的对应关系
     32         2.views.py 视图函数
     33 
     34 动静态网页
     35     静态网页
     36         数据是死的,万年不变
     37     动态网页
     38         数据不是写死的 是动态获取的
     39         比如:
     40             1.后端实时获取当前时间"传递"给前端页面展示
     41             2.后端从数据库获取数据"传递"给前端页面展示
     42             传递给前端页面 >>> 页面渲染
     43 
     44 3.jinja2 模块
     45     pip3 install jinja2
     46     由于flask框架是依赖于jinja2的 所以下载flask 框架也会自带jinja2模块
     47     模板的渲染包含了模板语法
     48 
     49 4.模板语法(贴近Python语法)
     50     前端也能够使用后端的一些语法 操作后端传入的数据
     51 
     52     <p>{{data}}</p>
     53     <p>{{data["username"]}}</p>
     54     <p>{{data.password}}</p>
     55     <p>{{data.get("hobby")}}</p>
     56     {%for user_dict in user_list%}
     57         <tr>
     58             <td>{{user_dict.id}}</td>
     59             <td>{{user_dict.name}}</td>
     60             <td>{{user_dict.password}}</td>
     61         </tr>
     62     {%endfor%}
     63 
     64 5.推导Django 原理 小结
     65     1.纯手撸Web框架
     66         1.手动书写socket代码(服务器 HTTP协议 conn.send(b"HTTP/1.1 200 OK
    
    "))
     67         2.手动处理http数据,获取用户访问的url
     68         data = conn.recv(1024)
     69         current_path = data.split("
    ")[0].split("")[1]
     70         if current_path == "/index":
     71             return [b"hello word"]
     72         3.根据用户访问url 的不同 响应不同的结果
     73     2.基于wsgiref模块 帮助我们处理socket 以及http数据 wsgiref 模块
     74         wsgiref 模块
     75         from wsgiref.simple_server import make_server
     76         1.封装了 socket的代码 请求来的时候 解析http数据帮你打包成一个字典传输给你 便于你操作各项数据
     77             def run(env,response):
     78             "env 请求相关的数据"
     79             "response 响应相关的数据"
     80             response("200 OK",[])  #"200 OK" 相当于手撸服务器中的 b"HTTP/1.1 200 OK
    
    "
     81             current_path = env.get("PATH_INFO")
     82         2.响应走的时候 自动帮你把数据再打包成符合HTTP 协议格式的样子 再返回给前端
     83         if __name__ == '__main__':
     84         启动:
     85         server = make_server('127.0.0.1',8080,run)
     86         # 实时监测127.0.0.1:8080地址 一旦有客户端来连接 会自动加括号调用run方法
     87         server.serve_forever()  # 启动服务端
     88 
     89     3.封装路由与视图函数对应关系 以及视图函数文件
     90         网站用到的所有的HTML文件全部放在templates文件夹
     91             1.urls.py 路由与视图对应关系
     92             2.views.py 视图函数(视图函数/类)
     93             3.templates 模板文件夹
     94     4.基于jinja2实现模板的渲染
     95         模板的渲染
     96         from jinja2 import Template
     97         date = f.read()
     98         temp = Template(date)
     99         res = temp.render(data=user_dict)# 将user_dict传递给前端页面 前端页面通过变量名data就能够获取到该字典
    100             后端生成好数据 通过某种方式传递 给前端页面使用(前端页面可以基于模板语法更加快捷简便使用后端传过来的数据)
    101 
    102 
    103 
    104 6.Web 框架
    105     Python三大主流框架
    106         1.Django:大而全 自带的功能特别多 就类似于航空母舰,
    107             缺点:有时候过于笨重
    108         2.Flask 短小精悍 自带功能特别少 全部依赖于第三方组件
    109             flask 框架 第三方组件特别多 如果 把flask 第三方全部加起来 完全可以盖过Django
    110             缺点:比较受限于第三方的开发
    111         3.Tornado 天生的异步非阻塞框架  速度特别快 能够抗住高并发
    112             可以开发新游戏服务器
    113 
    114 
    115        A.socket
    116        B.路由和视图函数 urls
    117        C.模板语法
    118 
    119        Django
    120             A:用的别人的 wsgiref
    121             B:自己写的
    122             C:自己写的
    123 
    124        Flask
    125             A :用的别人的 wsgiref >>> werkzeug
    126             B :自己写的
    127             C :用的别人的 jinja2
    128 
    129        Tornado
    130             A,B,C全都是自己写的
    131 
    132 7.Django
    133     1.注意事项:
    134         1.你的计算机名称不能有中文
    135         2.文件的命名尽量也不要用中文
    136         3.一个pycharm窗口下只能有一个项目 不要把多个项目放在一起
    137 
    138     2.Django版本问题
    139         1.x  推荐
    140         2.x
    141 
    142         以Django1.11版本为主,
    143     3.django下载
    144         pip3 install django==1.11.11
    145 
    146     4.如何确认是否下载成功
    147         命令行敲 django-admin
    148 8.如何创建Django项目
    149     命令行式
    150         1.命令行创建Django项目
    151             django-admin startproject 项目名
    152         2.命令行创建django应用(一个应用对应一块独立的功能)
    153             1.django-admin startapp 应用名
    154             2.python manage.py startapp 应用名
    155         3.命令行启动django
    156             python manage.py runserver
    157 
    158         (******)
    159         ps:
    160             1.用命令行创建行django项目不会自动新建templates模板文件夹
    161             2.需要你自己手动创建 并且需要你自己去settings.py文件中注册该文件路径
    162 
    163 9.pycharm快捷方式 直接在pycharm中创建
    164 
    165         (******)
    166         创建的应用 一定要在settings中注册 才能生效 否则无法识别
    167 
    168 
    169 9.django主要文件介绍
    170     项目名文件
    171         同名的项目文件夹
    172             settings.py  django暴露给用户可配置的文件
    173             urls.py 路由与视图函数对应关系
    174             manage.py django入口文件
    175             应用文件夹
    176                 migrations文件夹   数据库迁移记录
    177                 admin.py           django后台管理
    178                 apps.py            应用注册相关
    179                 models.py          orm模型类
    180                 tests.py           测试文件
    181                 view.py            视图文件
    182 
    183 10.django小白必会的三板斧
    184     HTTPResponse: 返回字符串
    185     render  返回html页面 并且能够给该页面传值
    186     redirect:重定向
    187 
    188 
    189 补充:
    190     创建app
    191     django-admin startapp app名(老男孩学员习惯性的起app01....)
    192     python3 manage.py startapp app名
    193         app名的文件夹
    194             migrations 文件夹      数据库操作记录
    195             __init__.py
    196             apps.py                 注册app相关文件
    197             models.py               orm模型类相关
    198             views.py                视图函数(函数/类)
    199             tests.py                测试相关
    200 
    201 app概念
    202     django项目就类似于是一所大学,app就是大学里面不同的学院
    203     每个学院都有自己独立的功能
    readme
  • 相关阅读:
    numpy学习(将条件逻辑表述为数组运算)
    numpy学习(利用数组进行数据处理)
    numpy学习(通用函数:快速的元素级数组函数)
    numpy学习(数组转置和轴对换)
    numpy学习(花式索引)
    关于C++中的虚拟继承的一些总结
    adb常用命令
    进程隐藏的方法
    Microsoft Detours 2.1简介
    ebay如何确定同一电脑登陆了多个账号,以及同一账号登陆过多台电脑
  • 原文地址:https://www.cnblogs.com/llx--20190411/p/11544013.html
Copyright © 2011-2022 走看看