• 114 flask第一天 request 参数 response jinja2(模板语言) session


    主要内容:https://www.cnblogs.com/DragonFire/p/9259999.html

    1 django, flask, tornado框架的总结

      a : django web 

        优点:大而全,ORM models ,model Form ,admin ,csrf ,session

                  缺点:资源浪费

      b : flask web

        优点:小而精,ORM:x , Form:x , admin:x,csrf:x,session:√,第三方组件 : 全
        缺陷:稳定性较差

      c : tornado

        优点: 异步io非阻塞, 原生websocker   缺点: 什么都没有

    2  flask的认识:

    from flask import Flask
    app = Flask(__name__)
    # app是Flask的实例,它接收包或者模块的名字作为参数,但一般都是传递__name__。
    # 让flask.helpers.get_root_path函数通过传入这个名字确定程序的根目录,以便获得静态文件和模板文件的目录。
    @app.route("/",methods=["GET","POST"])
    def index():
    	return ""
    app.run()
    # app.run(host="0.0.0.0", port=3556, debug=True)
    

    3  response三部曲 + send_file +jsonify

      a django中的httpresponse :  直接写成字符串,    return   '美好的一天现在开始, 哈哈哈'

           b  django中的render:             在flask中的语法  return  render_template("login.html")

      c  django中的redirect:            在flask中是一样的  return redirect("/login")

      d   send_file:                           return send_file(1.mp4) 打开并传输文件, 也可以是图片或者文件

      e   jsonify:           return  jsonify({"name": " jk", "age":34})   content_type:application/json

    4 flask中的request变量:  from flask import Flask,  request

    @app.route("/login", methods=("GET", "POST"))
    def login():
        if request.method == "GET":
            return render_template("login.html")
        if request.method == 'POST':
            print("this is  post")
            # 拿到的是form表单提交的数据. 通过to_dict()方法可以获取一个字典
            print(request.form.to_dict())
            # 当content-type无法被解析时, 存放原始的数据
            print(request.data)
            # 获取的是ajax传输的data里的数据
            print(request.json)
            # 当前访问的url
            print(request.url)
            # 接收的是get上的参数
            print(request.args)
            img_obj = request.files.get('filename')
            # 将图片保存在本地
            img_obj.save(img_obj.filename)
            print(request.values)
            # 打印主机地址
            print(request.host)
            # 将主机地址转换成httpurl
            print(request.host_url)
            login_info = request.form.to_dict()
            if login_info.get("username") == 'alex' and login_info.get("password") == "123":
                tag = Markup('<h1>this is the h1 tag</h1>')
                return render_template("index2.html", stu=STUDENT_DICT, tag=tag)
            return "用户名或者密码错误"
    

    5  jinja2  :  safe  Makeup  @app.template_global() @app.template_global() 两个装饰器, include标签  block代码块

       详解:  https://www.cnblogs.com/DragonFire/p/9259999.html

    6 session: from flask import session

    from flask import session
    app.secret_key = "yinjiaodawangba"
    Flask中的session是保存在 cookie 中的
    session["user"] = "jwb"
    session.get("user")
    

      

      

        

  • 相关阅读:
    java正则表达式
    SpringAOP03 项目脚手架、自定义注解、织入切面、引介增强
    SpringAOP02 自定义注解
    servlet01 项目demo、servlet生命周期
    SpringBoot15 sell02 订单模块
    SpringBoot15 sell01 项目创建、MySQL数据库连接、日志配置、开发热部署、商品信息模块
    datatables01 安装、数据源、选中行事件、新增一行数据、删除一行数据
    Navicat 连接阿里云的 MySQL
    linux内核中ip,tcp等头的定义(转)
    TCPflow:在Linux中分析和调试网络流量的利器(转)
  • 原文地址:https://www.cnblogs.com/gyh412724/p/10131072.html
Copyright © 2020-2023  润新知