什么是 Flask?
Flask是一个轻量级的Web 应用框架,使用 Python 编写.
它基于Werkzeug WSGI工具包和 Jinja2 模板引擎.
Flask被设计为一个简单易用的框架,适合小型应用或实验性项目,同时也可以扩展以适应复杂的应用.
环境准备
安装 Flask
创建虚拟环境
python3 -m venv venv
激活虚拟环境
-
Windows:
venv\Scripts\activate
-
macOS/Linux:
source venv/bin/activate
安装 Flask
pip install Flask
创建第一个 Flask 应用
创建项目目录
mkdir flask_app
cd flask_app
创建应用文件
在项目目录下创建 app.py
文件:
from flask import Flask
app = Flask(__name__)
@app.route('/')
def hello_world():
return 'Hello, World!'
if __name__ == '__main__':
app.run(debug=True)
运行应用
python app.py
访问 http://127.0.0.1:5000/
可以看到 "Hello, World!".
路由和视图函数
定义路由
@app.route('/hello')
def hello():
return 'Hello, Flask!'
动态路由
@app.route('/user/<username>')
def show_user_profile(username):
return f'User {username}'
模板渲染
创建模板目录
mkdir templates
创建模板文件
在 templates
目录下创建 index.html
:
<!doctype html>
<html>
<head>
<title>Hello, Flask!</title>
</head>
<body>
<h1>Hello, {{ name }}!</h1>
</body>
</html>
渲染模板
在 app.py
中修改路由:
from flask import render_template
@app.route('/')
def hello_world():
return render_template('index.html', name='Flask')
表单处理
创建表单页面
在 templates
目录下创建 form.html
:
<!doctype html>
<html>
<head>
<title>Form</title>
</head>
<body>
<form action="/submit" method="post">
<p><input type="text" name="name" /></p>
<p><input type="submit" value="Submit" /></p>
</form>
</body>
</html>
处理表单数据
from flask import request
@app.route('/form')
def form():
return render_template('form.html')
@app.route('/submit', methods=['POST'])
def submit():
name = request.form['name']
return f'Hello, {name}!'
数据库集成
安装 Flask-SQLAlchemy
pip install Flask-SQLAlchemy
配置数据库
from flask_sqlalchemy import SQLAlchemy
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///test.db'
db = SQLAlchemy(app)
定义模型
class User(db.Model):
id = db.Column(db.Integer, primary_key=True)
username = db.Column(db.String(80), unique=True, nullable=False)
def __repr__(self):
return f'<User {self.username}>'
创建数据库
with app.app_context():
db.create_all()
部署应用
安装 Gunicorn
pip install gunicorn
运行应用
gunicorn -w 4 app:app
结论
通过以上步骤,你已经掌握了 Flask 开发的基本知识,可以开始构建自己的 Web 应用.Flask 的灵活性和扩展性使得它适用于各种规模的项目.
感谢大家的关注和支持!想了解更多Python编程精彩知识内容,请关注我的 微信公众号:python小胡子,有最新最前沿的的python知识和人工智能AI与大家共享,同时,如果你觉得这篇文章对你有帮助,不妨点个赞,并点击关注.动动你发财的手,万分感谢!!!
原创文章不易,求点赞、在看、转发或留言,这样对我创作下一个精美文章会有莫大的动力!