本文共 3021 字,大约阅读时间需要 10 分钟。
安装Flask框架非常简单。只需在终端中运行以下命令:
pip install flask
建议在安装前创建一个虚拟环境,以避免依赖冲突。例如:
python -m venv myenvsource myenv/bin/activate # 或者 myenv\Scripts\activatepip install flask
创建一个名为 hello.py 的文件,按照以下内容编写:
# coding: utf-8from flask import Flaskapp = Flask(__name__)@app.route('/')def hello_world(): return 'Hello world' 运行脚本:
python hello.py
在浏览器中访问 http://127.0.0.1:5000/,即可看到 "Hello world"。
@app.route('/'):指定访问根路径时的处理函数。app.run():启动 Flask 应用,默认监听在 127.0.0.1:5000。Flask 的核心功能之一是路由管理。通过 @app.route 装饰器,可以将函数绑定到特定的 URL。
from flask import Flaskapp = Flask(__name__)@app.route('/greeting')def greet(): return 'Hello, Flask!' 要在 URL 中添加变量部分,可以使用 <variable_name> 格式。如:
@app.route('/user/ ')def display_user_profile(username): return f"用户 {username} 的资料" 可以通过 :<converter:variable> 定义转换器。例如:
@app.route('/post/ ')def show_post(post_id): return f"文章 {post_id} 的内容" 编写一个 construct_url.py 的文件,查看生成的 URL:
from flask import Flask, url_forapp = Flask(__name__)@app.route('/')def index(): pass@app.route('/login')def login(): pass@app.route('/user/ ')def profile(username): passwith app.test_request_context(): print(url_for('index')) # 输出: / print(url_for('login')) # 输出: /login print(url_for('login', next='/')) # 输出: /login?next=/ print(url_for('profile', username='John Doe')) # 输出: /user/John%20Doe 运行脚本:
python construct_url.py
输出结果:
//login/login?next=//user/John%20Doe
默认情况下,路由只响应 GET 请求。通过在 @app.route 中指定 methods 参数,可以支持其他 HTTP 方法。
@app.route('/login', methods=['GET', 'POST'])def login_handler(): if request.method == 'POST': # 处理登录逻辑 pass else: # 显示登录页面 pass Flask 集成 Jinja2 模板引擎。通过 render_template() 方法渲染模板。
编写一个 template_demo.py 文件:
from flask import render_templateapp = Flask(__name__)@app.route('/hello/ ')def hello(name=None): return render_template('hello.html', name=name) 模板文件应放置在 templates 文件夹中。例如:
你好,{{ name }} 你好,{{ name }}!
运行脚本:
python template_demo.py
在浏览器中访问 http://127.0.0.1:5000/hello/,即可看到动态渲染的内容。
通过 redirect() 函数实现 URL 重定向。
编写一个 redirect_demo.py 文件:
from flask import redirect, url_forapp = Flask(__name__)@app.route('/index', methods=['GET', 'POST'])def index(): return redirect(url_for('login'))@app.route('/login', methods=['GET', 'POST'])def login(): return "LOGIN" 运行脚本:
python redirect_demo.py
访问 http://127.0.0.1:5000/index/,会被重定向到 /login/。
通过自定义错误处理器来定义错误页面。
编写一个 error_handling.py 文件:
from flask import Flask, abort, render_templateapp = Flask(__name__)@app.route('/index', methods=['GET', 'POST'])def index(): return "OK"@app.errorhandler(404)def page_not_found(error): return render_template('page_not_found.html'), 404 模板文件 page_not_found.html:
404 - 页面未找到 404 - 页面未找到
运行脚本:
python error_handling.py
访问 http://127.0.0.1:5000/invalid_url/,将显示 404 错误页面。
通过以上内容,读者可以逐步掌握 Flask 框架的核心功能,包括安装、路由、模板渲染、URL 构造、HTTP 方法处理及错误页面定义等。
转载地址:http://dyfyz.baihongyu.com/