博主介绍:我是在等烟雨,是一名在校大学生,分享最近学习的技能,希望可以帮到你,如果有错请大佬指正~
擅长领域:Java、python、UI
简介
Flask初始app
from flask import Flask, render_template
app = Flask(__name__, template_folder="./templates")
@app.route("/", methods=["GET", "POST"])
def index():
return render_template("login.html")
if __name__ == "__main__":
app.run("127.0.0.1", 89, True)
@app.route("/", methods=["GET"],endpoint="index")
#endpoint可以类似于取别名的方式,让url_for("别名")方式找到请求路径
@app.route("/", methods=["GET"],endpoint="index")
def index():
return render_template("login.html")
@app.route("/logout", methods=["GEt"])
def logout():
if session is not None:
session.clear()
return redirect(url_for("index")) #url_for("index")获取到的的是 /
Request获取参数
request请求总体分为两类:
1.get请求
访问时会在地址栏直接显示参数不安全,且参数大小比较小。
2.post请求
参数不显示在地址栏,一般用户注册、登录都通过post请求完成。
flask获取参数方式:
request.form.get("key", type=str, default=None) 获取表单数据
request.args.get("key") 获取get请求参数
request.values.get("key") 获取所有参数
Session加盐
app.secret_key = "dasijadfijaspi"
@app.route("/login/access", methods=["GET", "POST"])
def login():
STATUS = False
if request.method == "GET":
return render_template("login.html")
elif request.method == "POST":
username = request.form.get("username")
password = request.form.get("password")
for list_user in users:
print(list_user)
if list_user.get(username) == password:
session["user_info"] = username
STATUS = True
return render_template("main.html", user=username)
if STATUS == False:
return render_template("login.html", msg="用户或密码错误")
视图函数的返回值
response响应:
模板语法
1、不同的模板引擎使用不同的模板语法,有各自实现的方式,通过特定的标签来完成变量的输出或者语句结构的执行,实现数据与模板分离
2、flask默认使用jinjia2模板引擎
主要语法标签:
变量标记 - { { }}
语句执行 - {% %}
注释语句 - {# #}
变量输出:
变量输出以{ { }}包裹
变量 - { {变量名}},比如{ {myname}}
对象 - { {obj.属性}}
字典 - { {dict['key']}}
列表 - { {lists[i]}}
函数 - { {func()}}
条件语句:
根据条件选择显示不同的html部分
{% if condition %}
ht