Flask介绍(轻量级的框架)
Flask是一个基于Python开发并且依赖jinja2模板和Werkzeug WSGI服务的一个微型框架,对于Werkzeug本质是Socket服务端,其用于接收http请求并对请求进行预处理,然后触发Flask框架,开发人员基于Flask框架提供的功能对请求进行相应的处理,并返回给用户,如果要返回给用户复杂的内容时,需要借助jinja2模板来实现对模板的处理,即:将模板和数据进行渲染,将渲染后的字符串返回给用户浏览器。默认情况下,Flask 不包含数据库抽象层、表单验证,或是其它任何已有多种库可以胜任的功能。然而,Flask 支持用扩展来给应用添加这些功能,如同是 Flask 本身实现的一样。众多的扩展提供了数据库集成、表单验证、上传处理、各种各样的开放认证技术等功能。
使用
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.html
<!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>
知识兔一般错误解决
使用