Flask 學習(一)簡單介紹

Flask介紹(輕量級的框架)

Flask是一個基於Python開發而且依賴jinja2模板和Werkzeug WSGI服務的一個微型框架,對於Werkzeug本質是Socket服務端,其用於接收http請求並對請求進行預處理,而後觸發Flask框架,開發人員基於Flask框架提供的功能對請求進行相應的處理,並返回給用戶,若是要返回給用戶複雜的內容時,須要藉助jinja2模板來實現對模板的處理,即:將模板和數據進行渲染,將渲染後的字符串返回給用戶瀏覽器。默認狀況下,Flask 不包含數據庫抽象層、表單驗證,或是其它任何已有多種庫能夠勝任的功能。然而,Flask 支持用擴展來給應用添加這些功能,如同是 Flask 自己實現的同樣。衆多的擴展提供了數據庫集成、表單驗證、上傳處理、各類各樣的開放認證技術等功能。html

 

使用

from flask import Flask

app = Flask(__name__)


# 添加路由方式一
@app.route('/')
def hello_world():

    return 'Hello World!'


# 添加路由方式二
# app.add_url_rule('/', view_func=hello_world)

if __name__ == '__main__':
    app.run(host="0.0.0.0", port=9527, debug=True)

# wsgi 應用程序網關接口 把你請求處理後發送給對應的app
# werkzeug

路由三種返回方式

from flask import Flask, render_template, redirect

app = Flask(__name__)

# 三種返回方式


@app.route('/')
def hello_world():

    return 'Hello World!'


@app.route("/login")
def login():
    # 模板渲染
    return render_template("login.html")


@app.route("/home")
def home():
    # 重定向
    return redirect("/")


if __name__ == '__main__':
    # app.run(host="0.0.0.0", port=9527, debug=True)
    app.run(debug=True)
# wsgi 應用程序網關接口 把你請求處理後發送給對應的app
# werkzeug

  

登陸舉例

from flask import Flask, render_template, redirect, request,session

app = Flask(__name__)
app.secret_key = "abcdefg" # Session, Cookies以及一些第三方擴展都會用到SECRET_KEY值
# 三種返回方式


@app.route('/')
def hello_world():

    return 'Hello World!'


@app.route("/login", methods=("GET","POST"))
def login():
    # 模板渲染
    # print(request.path)
    # print(request.url)
    # print(request.headers)
    if request.method == "GET":
        print(request.args.get("id"))
        return render_template("login.html")
    else:

        # print(request.form)
        # print(request.values.to_dict())   # 這個裏面什麼都有,至關於body
        # print(request.json)  # application/json
        # print(request.data)
        username = request.form.get("username")
        password = request.form.get("password")
        if username == "alex" and password == "123":
            session["user_info"] = username
            # session.pop("user_info")  #刪除session
            return "登陸成功"
        else:
            return render_template("login.html", msg="用戶名或者密碼錯誤")


@app.route("/home")
def home():
    # 重定向
    return redirect("/")



if __name__ == '__main__':
    # app.run(host="0.0.0.0", port=9527, debug=True)
    app.run(debug=True)
# wsgi 應用程序網關接口 把你請求處理後發送給對應的app
# werkzeug

 

login.htmlpython

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<h1>登陸頁面</h1>
<form action="/login?id=002" method="post">
    <p>用戶名:<input type="text" name="username"></p>
    <p>密碼:<input type="text" name="password"></p>
    <p><input type="submit" value="查看小祕密"></p>
    <p>{{ msg }}</p>
</form>

</body>
</html>

 通常錯誤解決

 

 使用數據庫

@app.route("/xx", methods=("GET","POST"))

 

 

  使用json

app.secret_key = "abcdefg"  # Session, Cookies以及一些第三方擴展都會用到SECRET_KEY值
相關文章
相關標籤/搜索