Python Flask 全流程全栈项目实战
获取ZY↑↑方打开链接↑↑
Flask 是一个轻量级的 Web 开发框架,由 Armin Ronacher 开发,使用 Python 语言。它被设计为简单、易扩展,非常适合小型到中型的 Web 应用程序,也可以用于大型应用。以下是 Flask 框架的基础知识初探。
Flask 的特点
- 轻量级:Flask 本身只提供了核心的 Web 工具,如路由、模板和错误处理。
- 易于扩展:可以通过扩展来增加更多功能,如表单验证、数据库集成、用户认证等。
- Werkzeug WSGI 工具箱:Flask 使用 Werkzeug 作为其 WSGI 工具箱和服务器。
- Jinja2 模板引擎:Flask 使用 Jinja2 作为模板引擎,用于渲染 HTML。
安装 Flask
在开始使用 Flask 之前,需要先安装 Flask。可以使用 pip 命令来安装:
bash
复制
pip install Flask
第一个 Flask 应用
以下是一个简单的 Flask 应用示例:
python
复制
from flask import Flaskapp = Flask(__name__)@app.route('/')def hello(): return 'Hello, World!'if __name__ == '__main__': app.run(debug=True)
这个应用做了以下几件事:
- 导入 Flask 类。
- 创建一个 Flask 实例。
- 定义一个路由
/和一个视图函数hello,当访问根 URL 时,会返回 “Hello, World!”。 - 使用
app.run()启动应用,debug=True开启调试模式。
路由
在 Flask 中,路由是指用户访问的 URL 与处理该请求的函数之间的映射。可以使用 @app.route 装饰器来定义:
python
复制
@app.route('/user/<username>')def show_user_profile(username): # 显示用户名的用户资料 return f'User {username}'
变量规则
可以在路由中添加变量部分,如上面的 <username>。还可以指定变量的类型:
python
复制
@app.route('/post/<int:post_id>')def show_post(post_id): # 显示具有特定 ID 的帖子 return f'Post {post_id}'
HTTP 方法
默认情况下,路由只响应 GET 请求。可以通过添加 methods 参数来处理不同的 HTTP 方法:
python
复制
@app.route('/login', methods=['GET', 'POST'])def login(): if request.method == 'POST': # 处理登录逻辑 return 'Login POST' else: # 显示登录表单 return 'Login GET'
静态文件
Flask 默认提供静态文件服务,只需将静态文件放在名为 static 的文件夹中,然后使用 /static 前缀即可访问:
html
复制
<link rel=stylesheet type=text/css href="{{ url_for('static', filename='style.css') }}">
模板
Flask 使用 Jinja2 作为模板引擎,可以轻松地渲染 HTML 页面:
python
复制
from flask import render_template@app.route('/hello/')@app.route('/hello/<name>')def hello(name=None): return render_template('hello.html', name=name)
在 templates 文件夹中创建一个名为 hello.html 的文件:
html
复制
<!doctype html><title>Hello from Flask</title>{% if name %} <h1>Hello {{ name }}!</h1>{% else %} <h1>Hello, World!</h1>{% endif %}
运行应用
运行 Flask 应用通常有两种方式:
- 使用内置服务器:
bash
复制
flask run
或者在代码中使用:
python
复制
if __name__ == '__main__': app.run()
- 使用外部 WSGI 服务器,如 Gunicorn:
bash
复制
gunicorn -w 4 myapp:app
这里的 myapp 是包含 Flask 应用实例的 Python 模块,app 是 Flask 实例。
以上就是 Flask 框架的基础入门知识。Flask 社区提供了大量的扩展和文档,可以帮助开发者构建更复杂的应用。