基础
[!tip]
from flask import Flask
[!note]
创建 flask
from flask import Flask
# 创建一个Flask应用实例
app = Flask(__name__)
# 访问/xxx时,执行index()函数
@app.route('/xxx')
def index():
return '成功!'
# 运行Flask应用
if __name__ == '__main__':
app.run()
[!note]
修改网址端口
app.run(host="127.0.0.1",port=5000)
[!note]
获取 get 请求参数
from flask import Flask,request
# 创建一个Flask应用实例
app = Flask(__name__)
# 访问/xxx时,执行index()函数
@app.route('/index')
def index():
age = request.args.get('age')
pwd = request.args.get('pwd')
print(age,pwd)
return '成功!'
# 运行Flask应用
if __name__ == '__main__':
app.run()
[!note]
设置支持 POST 请求,并获取参数
from flask import Flask,request
# 创建一个Flask应用实例
app = Flask(__name__)
# 访问/xxx时,执行index()函数
@app.route('/index',methods=['GET','POST'] )
def index():
age = request.args.get('age')
pwd = request.args.get('pwd')
xx = request.form.get('xx')
yy = request.form.get('yy')
print(age,pwd)
print(xx,yy)
return '成功!'
# 运行Flask应用
if __name__ == '__main__':
app.run()
[!note]
发送 POST 请求
json 格式
request.json # 获取JSON值
[!note]
返回 json
from flask import Flask,request,jsonify
# 创建一个Flask应用实例
app = Flask(__name__)
# 访问/xxx时,执行index()函数
@app.route('/index',methods=['GET','POST'] )
def index():
age = request.args.get('age')
pwd = request.args.get('pwd')
xx = request.form.get('xx')
yy = request.form.get('yy')
print(age,pwd)
print(xx,yy)
print(request.json)
return jsonify({"status": 200, "msg": "success"})
# 运行Flask应用
if __name__ == '__main__':
app.run()
[!note]
创建 mysql 连接池
POOL = PooledDB(
creator=pymysql,
#使用链接数据库的模块
maxconnections=10,#连接池允许的最大连接数,0和None表示不限制连接数
mincached=2,#初始化时,链接池中至少创建的空闲的链接,0表示不创建
maxcached=3,#链接池中最多闲置的链接,o和None不限制
blocking:=True,#连接池中如果没有可用连接后,是否阻塞等待。TrUe,等待;False,不等待然后报错
setsession=[],#开始会话前执行的命令列表。如:["set datestyle to.","set time zone."]
ping=0,
host='127.0.0.1,port=3306',user='root',passwd='105105',charset="utf8",db='localhost'
)
连接池连接
coon = POOL.connection()
cursor = conn.cursor()
cursor.execute(sql,params)
result = cursor.fetchone()
cursor.close()
conn.close() # 不是关闭连接,将此链接还给连接池
[!note]
返回指定页面
from flask import Flask,request,render_template
# 创建一个Flask应用实例
app = Flask(__name__)
@app.route('/index',methods=['GET','POST'] )
def index():
return render_template("index.html")
if __name__ == '__main__':
app.run()
[!note]
重定向页面
return redirect('/info/list/')
Flask HTML 模板语法
<!-- 变量 -->
<p>{{ name }}</p>
<!-- if语句 -->
{% if user %}
<p>Welcome, {{ user }}!</p>
{% else %}
<p>Welcome, Guest!</p>
{% endif %}
<!-- for循环 -->
<ul>
{% for item in items %}
<li>{{ item }}</li>
{% endfor %}
</ul>
<!-- 注释 -->
{# 这是一个注释,不会在HTML中显示 #}
<!-- 宏(Macro) -->
{% macro render_comment(comment) %}
<div class="comment">
<p>{{ comment.author }}: {{ comment.content }}</p>
</div>
{% endmacro %}
<!-- 模板继承 -->
{% extends "base.html" %}
{% block content %}
<p>This is the child template content.</p>
{% endblock %}
<!-- 包含其他模板 -->
{% include 'footer.html' %}
Comments NOTHING