Flask学习

Flask学习_第1张图片

 

博主介绍:我是在等烟雨,是一名在校大学生,分享最近学习的技能,希望可以帮到你,如果有错请大佬指正~
擅长领域:Java、python、UI 

简介

  • Flask 是一个使用 Python 编写的轻量级 Web 应用程序框架。Armin Ronacher带领一个名为Pocco的国际Python爱好者团队开发了Flask。
  • PythonWeb框架:
    1. Django:大而全面,重武器
    2. Flask:短小而精悍,可扩展强
    3. Tornado:短小精悍+异步非阻塞
    4. 其他:
      • web.py
      • bottle.py

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. str 自动转成response对象
  2. dict json
  3. response对象 response对象
  4. make_response() response对象
  5. redirect() 重定向 302状态码
  6. render_template() 模板渲染 + 模板

模板语法

1、不同的模板引擎使用不同的模板语法,有各自实现的方式,通过特定的标签来完成变量的输出或者语句结构的执行,实现数据与模板分离

2、flask默认使用jinjia2模板引擎

主要语法标签:

变量标记 - { { }}

语句执行 - {% %}

注释语句 - {# #}

变量输出:

变量输出以{ { }}包裹

变量 - { {变量名}},比如{ {myname}}

对象 - { {obj.属性}}

字典 - { {dict['key']}}

列表 - { {lists[i]}}

函数 - { {func()}}

条件语句:

根据条件选择显示不同的html部分

{% if condition %}

ht

你可能感兴趣的:(python,python,flask)