Flask模块如何使用

Flask 是一个轻量级的 Python Web 框架,以其简洁性和灵活性著称。以下是一些关键点和使用方法:

安装 Flask

通过 pip 安装 Flask:

bash 复制代码
pip install flask

创建基本应用

创建一个简单的 Flask 应用:

python 复制代码
from flask import Flask
app = Flask(__name__)

@app.route('/')
def home():
    return 'Hello, Flask!'

if __name__ == '__main__':
    app.run(debug=True)

路由与视图

定义路由和视图函数:

python 复制代码
@app.route('/about')
def about():
    return 'About Page'

模板渲染

使用 Jinja2 模板引擎渲染 HTML:

python 复制代码
from flask import render_template

@app.route('/user/<name>')
def user(name):
    return render_template('user.html', name=name)

静态文件

将静态文件(如 CSS、JS)放在 static 文件夹中,通过 URL 访问:

html 复制代码
<link rel="stylesheet" href="{{ url_for('static', filename='style.css') }}">

请求处理

处理表单数据:

python 复制代码
from flask import request

@app.route('/login', methods=['GET', 'POST'])
def login():
    if request.method == 'POST':
        username = request.form['username']
        return f'Hello, {username}!'
    return render_template('login.html')

重定向与 URL 生成

使用 redirecturl_for

python 复制代码
from flask import redirect, url_for

@app.route('/admin')
def admin():
    return redirect(url_for('home'))

错误处理

自定义错误页面:

python 复制代码
@app.errorhandler(404)
def page_not_found(error):
    return render_template('404.html'), 404

数据库集成

使用 Flask-SQLAlchemy 进行数据库操作:

python 复制代码
from flask_sqlalchemy import SQLAlchemy

app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///site.db'
db = SQLAlchemy(app)

class User(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    username = db.Column(db.String(20), unique=True, nullable=False)

部署

使用 Gunicorn 或 Waitress 部署 Flask 应用:

bash 复制代码
gunicorn -w 4 -b 0.0.0.0:5000 app:app

Flask 的轻量级设计使其非常适合快速开发和原型设计,同时也支持通过扩展实现复杂功能。

相关推荐
Sirius.z2 小时前
第R6周:LSTM实现糖尿病探索与预测
python
名字还没想好☜3 小时前
Python f-string 进阶:数字格式化、对齐填充、调试 = 号与嵌套表达式
开发语言·数据库·python·字符串格式化·f-string
·薯条大王3 小时前
经济实惠玩云服务器|一台云服务器多人共用,子账号配置教程
java·linux·运维·服务器·汇编·c++·python
Dxy12393102164 小时前
Python 如何使用 MySQL 的事务
python·mysql
eric-sjq4 小时前
10 分钟实战:用 0.6B 本地模型生成中文网页(WanlyFrontend + 编译器全流程)
javascript·机器学习·自然语言处理·html
ZJH__GO6 小时前
网络编程v4pro--实现聊天室文件传输功能
java·服务器·网络·计算机网络
小小、码农6 小时前
Linux进程控制:从fork到exec,手写一个简易Shell
linux·运维·服务器
不会就选b7 小时前
Linux之进程间通信(二)---模拟进程池
linux·运维·服务器
NeilYuen7 小时前
用UDP实现向DNS服务器请求IP地址
服务器·tcp/ip·udp
今儿敲了吗8 小时前
Python ——第三方包
笔记·python