当前位置: 首页 > article >正文

python中的flask框架

Flask 是一个用Python编写的轻量级Web应用框架

基于WSGI和Jinja2模板引擎

被称为“微框架”,其核心功能简单,不捆绑数据库管理、表单验证等功能,而是通过扩展来增加其他功能

Flask提供最基本的功能,不强制使用特定工具或库

通过插件和扩展来添加功能,如表单处理、数据库交互等

通过创建Flask对象来初始化应用

将URL映射到视图函数,处理请求并返回响应

使用Jinja2模板引擎渲染HTML页面,支持多种HTTP方法

通过创建Flask对象来初始化应用

Flask基于Werkzeug WSGI工具包和Jinja2模板引擎构建。

Werkzeug为Flask提供了请求和响应处理、路由匹配等基础功能,是Flask处理HTTP请求的底层支撑

 Jinja2则用于模板渲染,可以方便地生成动态HTML页面,实现数据与视图的分离。

Flask 框架

使用pip可以方便快捷地安装 Flask

pip install flask
from flask import Flask

# 创建 Flask 应用实例
app = Flask(__name__)

# 定义路由和视图函数
@app.route('/')
def hello_world():
    return 'Hello, World!'

# 启动应用
if __name__ == '__main__':
    app.run(debug=True)
导入 Flask 类:从 flask 模块中导入 Flask 类,用于创建 Flask 应用实例。

app = Flask(__name__) 创建了一个 Flask 应用实例,__name__ 是 Python 的内置变量,表示当前模块的名称。

使用 @app.route('/') 装饰器定义了一个路由,当用户访问根路径 / 时,会调用 hello_world 函数,该函数返回一个简单的字符串 'Hello, World!'

app.run(debug=True) 启动应用,debug=True 开启调试模式,方便在开发过程中调试代码,当代码发生变化时,服务器会自动重启。

Flask 使用装饰器来定义路由,允许URL路径映射到对应的视图函数。

@app.route('/about')
def about():
    return 'This is the about page.'

定义了一个 /about 的路由,当用户访问该路径时,会返回 'This is the about page.'。Flask 还支持动态路由

@app.route('/user/<username>')
def show_user_profile(username):
    return f'User {username}'

<username> 是一个动态参数,用户访问 /user/john 时,username 的值会被设置为 'john',并传递给 show_user_profile 函数。

Flask 提供了 request 对象来处理客户端的请求信息,如获取请求参数、请求方法等,使用 Response 对象来返回响应给客户端。

from flask import request

@app.route('/login', methods=['POST'])
def login():
    username = request.form.get('username')
    password = request.form.get('password')
    # 处理登录逻辑
    return 'Login successful'

使用 methods=['POST'] 指定该路由只接受 POST 请求,通过 request.form.get() 方法获取表单数据。

Flask 默认使用 Jinja2 模板引擎,允许开发者将动态数据与 HTML 模板结合生成动态页面。创建一个 templates 文件夹,在其中创建 index.html 模板文件

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>{
  
  { title }}</title>
</head>
<body>
    <h1>{
  
  { message }}</h1>
</body>
</html>

在 Python 代码中使用 render_template 函数渲染模板

from flask import render_template

@app.route('/template')
def template_demo():
    return render_template('index.html', title='Template Demo', message='This is a template example.')

render_template 函数会将 titlemessage 变量传递给模板文件,替换模板中的 { { title }}{ { message }} 占位符。

Flask 易于上手和快速搭建,适合在项目初期进行快速原型开发,验证项目的可行性和功能需求。开发者可以在短时间内搭建起一个简单的 Web 应用,展示项目的基本功能,为后续的开发提供基础。

对于一些功能简单、规模较小的 Web 应用,如小型企业网站等,Flask 的轻量级特性可以满足需求,并且易于维护。可以根据项目的实际情况选择合适的第三方库,快速完成项目的开发。

Flask 可以方便地创建 RESTful API,结合 JSON 数据格式,为前端应用或其他服务提供数据接口。

from flask import jsonify

@app.route('/api/data')
def api_data():
    data = {'name': 'John', 'age': 30}
    return jsonify(data)

使用 jsonify 函数将 Python 字典转换为 JSON 格式的响应,方便前端应用或其他服务进行数据交互。

Flask 有丰富的扩展库,可Flask - SQLAlchemy 用于数据库操作,Flask - Login 用于用户认证,Flask - WTF 用于表单处理等。


http://www.kler.cn/a/537435.html

相关文章:

  • C++设计模式
  • 广度优先搜索(BFS)算法详解——以走迷宫问题为例
  • 区块链项目孵化与包装设计:从概念到市场的全流程指南
  • 京准:NTP卫星时钟服务器对于DeepSeek安全的重要性
  • 安卓开发,Reason: java.net.SocketTimeoutException: Connect timed out
  • 尝试在Office里调用免费大语言模型的阶段性进展
  • C#中深度解析BinaryFormatter序列化生成的二进制文件
  • WebSocket connection failed 解决
  • 2024中国行政区划多边形矢量数据(含有十段线)仅供学习
  • 活动预告 |【Part 1】Microsoft 安全在线技术公开课:通过扩展检测和响应抵御威胁
  • 即梦(Dreamina)技术浅析(六):多模态生成模型
  • golang使用sqlite3,开启wal模式,并发读写
  • AD域控粗略了解
  • DeepSeek+AnythingLLM生成攻防演练方案
  • [权限提升] Linux 提权 维持 — 系统错误配置提权 - Sudo 滥用提权
  • 微信小程序案例1——制作猫眼电影底部标签导航栏
  • 网络安全ITP是什么 网络安全产品ips
  • C++轻量级桌面GUI库FLTK
  • 图文并茂-jvm内存模型
  • GaussDB对象权限的注意事项
  • 【再谈设计模式】状态模式~对象行为的状态驱动者
  • 计算机视觉语义分割——Attention U-Net(Learning Where to Look for the Pancreas)
  • 【算法】动态规划专题⑨ —— 二维费用背包问题 python
  • 如何衡量您的文化
  • LeetCode:503.下一个更大元素II
  • 正则表达式进阶(二)——零宽断言详解:\b \B \K \z \A