文章目录
一. Flask框架初体验(配置环境 + 简单demo样例)
虚拟环境
建议新建一个专门用来使用Flask框架的虚拟环境。防止各种库之间的版本冲突。
新建项目
选择新建flask项目。
至此,一个简单的页面 Hello World! 就形成了。
将Pycharm改为FLASK_DEBUG模式
为了以后使用的方便,将Pycharm改为FLASK_DEBUG模式。
改成FLASK_DEBUG模式是防止:浏览器更新不及时,仍旧是上次响应的问题。
修改FLASK_DEBUG模式的步骤
配置文件
由于项目不断丰富,为了实现高内聚、低耦合,新建 config.py,将所有的配置项放到 config.py 中。
config.py 文件内容如下:
# flask的配置项目,名字都是大写字母
JSON_AS_ASCII = False
简单用法
URL_FOR
反转 ,通过函数名来得到URL。
扫描二维码关注公众号,回复:
14371253 查看本文章
redirect(url_for("index"))
:重定向到 index()函数的页面。
重定向
使用redirect()函数,里面一般使用url_for()函数得到重定向之后的URL。
指定Http方法
可以在@app.route()
里面添加参数项methons=['GET','POST']
。
- 如果只是需要从服务器上获取数据,一般都是用GET请求
- 如果前端需要把数据发送给服务器,一般用POST请求
完整代码
app.py
from flask import Flask, url_for, jsonify, request, redirect
import config
# 使用Flask创建一个app对象,并且传递__name__参数
app = Flask(__name__)
# 加载配置文件
app.config.from_object(config)
books = [
{
"id": 1, "name": "三国演义"},
{
"id": 2, "name": "水浒传"},
{
"id": 3, "name": "红楼梦"},
{
"id": 4, "name": "西游记"}
]
# 1. 如果只是需要从服务器上获取数据,一般都是用GET请求
# 2. 如果前端需要把数据发送给服务器,一般用POST请求
# 3. 在@app.route上,添加methods参数,这个参数是一个列表类型,可以传递多个。
@app.route('/book/<int:book_id>', methods=['POST', 'GET'])
def book_detail(book_id):
for book in books:
if book_id == book['id']:
return book
return f"id为:{
book_id}的图书没有找到!"
@app.route("/book/list")
def book_list():
for book in books:
book['url'] = url_for("book_detail", book_id=book['id'])
print(book['url'])
return jsonify(books)
@app.route("/profile")
def profile():
# 参数传递的两种形式:
# 1. 作为url的组成部分:/book/1
# 2. 查询字符串:/book?id=1
# 查询参数是否有id
user_id = request.args.get("id")
if user_id:
return "用户个人中心"
else:
# 重定向到主页面
return redirect(url_for("index"))
@app.route('/')
def index():
return 'Hello World!'
if __name__ == '__main__':
app.run()