Django初步了解

记录bigash学习Django 这个Python web框架的过程

PythonWeb框架

PythonWeb框架有很多

  • Flask
    定位是微型框架,它的目标就是为你提供一个Web开放的核心支持,如果需要其他功能,可以使用第三方插件,或者自己写一个插件
  • Tornado
    高性能,并不基于WSGI协议的框架
  • Django
    Instagrm用的就是Django

这里列出Django的常用内置功能 HTTP封装 ORM admin Form template session和cookie 权限 安全 cache Logging sitemap RSS

基于Python来开发系统,逻辑也是一样的,需要建立好系统模型和数据模型,选择什么工具不是最主要的,最主要的是在脑海中系统的模型,知道每个模块的存放以及作用,
输出产品需求文档(PRD)给开发人员

这里我们使用Python中的一个ORM库,来画出对象实体模型 https://editor.ponyorm.com/

Django基础

Django是基于MVC(MTV)模式的框架,无论叫什么,最终目的就是解耦下图是一次请求涉及的Django模块示意图

image-20220225103527216

Django模块

  • Model
    整个项目结构中是直接同数据库打交道的一层,所以数据处理的部分都在这一层,关于纯数据操作的部分,应该都放在这一层来做
  • View
    View层的侧重点在业务上,通过获取数据,过滤数据和整合数据,拿到我们想要的结果,然后通过HttpResponse渲染出来,其包括URL配置,HTTP Request,HTTP Response以及View函数
  • Template
    模板部分,对设计师友好的部分,
  • Form
    无论是需要通过Form来提交数据的页面,还是Ajax的方式提交数据到后端的,其工作原理和ORM很像,Form师对HTML中的Form表单的的抽象,

WSGI

理解WSGI

WSGI(Web Server Grateway Interface)web服务器网关接口,这是Python中定义的一个网关协议
这个协议使得Python中的Web Sever程序或者说Gateway程序,可以通过统一的协议跟Web应用进行交互,尝试过单线程和多线程的socket之后,更能体会到,在Web框架中,异步非阻塞是一种很常见的模式

  • Web Sever
    监听某个端口上外部的请求
  • Web Application
    Web Server接受请求后,通过WSGI协议规定的方式把数据传递给Web Application

最终在Web Application中处理完成之后,设置对应的状态和header,之后返回body部分,Web Sever 拿到返回数据后,进行HTTP封装,最终返回完整的HTTP Resonse数据

result = application(environ, start_response) 
#实现的Application需要可以接受一个环境变量以及一个回调函数即可
#WSGI规定,application必须是一个可调用对象,意味着这个对象既可以是Python中的一个函数,也可以是一个实现了__call__方法的类的实例

WSIG中间件

除了交互,WSGI还定义了中间件部分的逻辑,存在Werkzrug这样的WSGI工具集,可以更好的更WSGI协议友好地交互,

Django结构

文件结构

mysite/
    manage.py                #项目管理,创建,启动项目,数据库管理,创建app
    mysite/
        __init__.py
        settings.py            #项目默认的基础配置
        urls.py                #url和函数的对应关系
        asgi.py                #处理网路请求 异步
        wsgi.py                #处理网路请求 同步

APP

小功能的管理,每一个app都有独立的结构

最后
Stanging on Shoulders of Giants

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇