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")

浙公网安备 33010602011771号