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值