zoukankan      html  css  js  c++  java
  • django和flask区别及简单使用

    Django 原生组件非常丰富 - 教科书式框架
    Django.Model - ORM
    Django.Form
    Django.ModelForm
    Django.Session Model
    Admin CsrfToken
    Django 加载项巨大 资源浪费
    Flask Web框架 -
    Flask 非常短小精悍 - 精简到只有一个 Session
    Flask 第三方组件 非常全
    Flask 第三方组件 - 运行稳定性相对较差
    羽绒服 半截袖
    Django 适合大型 密集型
    Flask 适合小型 API服务类项目
    1.Flask Web框架 + HelloWorld
    pip install Flask - 1.1.1
    Flask Flask库文件
    Jinja2 模板渲染库
    MarkupSafe 返回安全标签 只要Flask 返回模板或者标签时都会依赖MarkupSafe
    Werkzeug 德文“工具” == uWSGI 底层是 WSGI Flask项目启动都是基于Werkzeug
    应用Flask
    # 三行启动Flask 提供服务
    # from flask import Flask
    # app = Flask(__name__)
    # app.run()
    # 六行启动Flask 提供HelloWorld
    from flask import Flask # 导入Flask 类创建Flask应用对象
    app = Flask(__name__) # app = application
    @app.route("/index") # 为 Flask 应用对象增加路由
    def index(): # 与路由绑定的视图函数 视图函数名尽可能保持唯一
    return "HelloWorld" # “” 相当于 Django 中的 HttpResponse
    if __name__ == '__main__': # 当前文件处于脚本状态时运行如下代码
    app.run() # 启动Flask 应用
    模板设置

     

     2.Flask 中的 Response

       1.HTTPResponse("HelloWorld")       "HelloWorld"
    2.render("html文件") render_template("HTML文件") # 默认存放路径是"templates"
    3.redirect("/home") redirect("/home")
    # 302 HTTP status
    # 4xx 错误 客户端
    # 5xx 错误 服务器
    ResponseHeaders 中加入了一个 Localtion:http://url
    # Flask 特殊返回值
    4.send_file("文件路径") 返回文件
    # 打开并返回文件内容 自动识别文件类型 在ResponseHeaders中加入
    # Content-Type:文件类型 - *文件类型 是可以被客户端识别的文件类型
    # 不能识别的类型 下载处理 - 浏览器会下载
    ###### x-ms x二进制 ms微软 wma文件
    5.jsonify("字符串或数据类型") 返回标准格式的JSON字符串
    # Content-Type:application/json == 标准格式
    # Flask 1.1.1
    # return d # 暂时不建议使用 兼容性
    # 直接返回dict时 本质上在执行jsonify(d)
    # API 接口 AJAX.post({username:123}){
    function(data){ obj = data }}
    # 1.打包JSON 序列化JSON字符串
    # 2.编写ResponseHeaders 加入 Content-Type:application/json
    # 利用 Flask 做一个登录 username password
    # request?
    3.Flask 中的 Request
    methods=["GET","POST"] 在添加路由的装饰器中允许请求方式,覆盖
    1.request.form 获取FormData中的数据 to_dict() ImmutableMultiDict
    2.request.method 获取请求方式
    3.request.args # 获取URL中的数据 字符串 get("key") to_dict()
    4.
    f-orm 表 ORM
    from
    Falsk中的session
      session 服务端的键值对
      cookie 客户端的键值对
      交由客户端保管机制
    1.开启session[username] = 123
    {
      username:123
    }
    2.序列化字典转字符串
    3.加密字符串secretKeymi秘钥字符串
    接收反序列化session
    1.从cookie中获取到session key的值
    2.通过secretkey 解密session
    3.发序列化成字典
    Jinja2
      {{}}引用变量数据,执行函数
      {%%}逻辑代码
  • 相关阅读:
    JavaScript实现类的private、protected、public、static以及继承
    OSS网页上传和断点续传(STSToken篇)
    OSS网页上传和断点续传(OSS配置篇)
    Linq sum()时遇到NULL
    SQLSERVER事务日志已满 the transaction log for database 'xx' is full
    笔记本高分辨软件兼容问题,字体太小或模糊
    H5上传图片之canvas
    An error occurred while updating the entries. See the inner exception for details.
    无限级结构SQL查询所有的下级和所有的上级
    SQLserver 进程被死锁问题解决
  • 原文地址:https://www.cnblogs.com/zhang-da/p/13170009.html
Copyright © 2011-2022 走看看