Flask框架基础功能

引言

本文简单汇总Flask框架几大基础功能,包括:

  • 路由系统
  • 模板
  • 数据库
  • 几种常用Flask库

一个简单的Flask事例

Flask是一个基于Python,依赖Jinja2模板和WSGI服务的框架。当我们访问一个URL时,浏览器发出HTTP请求,WSGI接收到我们的请求,交给Flask框架提供的一系列功能来处理请求,并返回HTTP响应给浏览器(客户端)。
与Django相比,Flask作为一个微框架,不会面面俱到,但可以通过安装扩展来增加提供的服务,可定制性很强。
下面是一个简单的Flask事例,当我们访问http://127.0.0.1:5000时,浏览器会显示hello flask

from flask import Flask


app = Flask(__name__)

@app.route('/')
def index():
    return '<h1>hello, flask</h1>'

if __name__ == '__main__':
    app.run(host='127.0.0.1', port=5000)

上述程序我们创建了一个app的Flask实例,将根目录与index路由函数函数绑定,并运行在localhost:5000上。
运行上述程序,我们可以直接python 程序名运行。如果用于开发环境,还有其他方法来运行,Flask源码里面的注释写是很清楚,需要设置FLASK_DEBUG环境变量为程序名,然后就可以通过flask run来运行该服务器。

路由系统

上面的程序中,@app.route('/')是一个装饰器。python里面装饰器常常用来将被装饰的函数注册为某事件的回调函数。具体来说,当Web浏览器请求/时,会触发index这个函数,并将index函数的返回值作为响应返回给浏览器。不同的URL可以有相同的视图处理函数,换句话说,一个函数可以对应多个URL。这在Django的MTV模式中,对应其中的views。

常用的路由系统有以下五种:

  • @app.route('/usr/')
  • @app.route('/usr/')
  • @app.route('/usr/')
  • @app.route('/usr/')
  • @app.route('/usr', methods=['GET', 'POST'])

以下是对应关系:

DEFAULT_CONVERTERS = {
    'default':          UnicodeConverter,
    'string':           UnicodeConverter,
    'any':              AnyConverter,
    'path':             PathConverter,
    'int':              IntegerConverter,
    'float':            FloatConverter,
    'uuid':             UUIDConverter,
}

可以看到不支持正则表达式。关于这点,可以参考Segment Fault的回答。

To Be continue

转载于:https://www.cnblogs.com/pusidun/p/9031383.html

### Flask框架的主要功能 Flask 是一种轻量级的 Web 开发框架,其核心设计理念在于提供灵活的基础结构,使开发者能够根据需求扩展应用程序[^1]。以下是 Flask 的主要功能: #### 1. **路由机制** Flask 提供了强大的路由系统,用于将 URL 请求映射到相应的 Python 函数(即视图函数)。这种设计使得开发者可以轻松管理不同路径下的逻辑处理[^2]。例如: ```python from flask import Flask app = Flask(__name__) @app.route('/hello') def hello(): return 'Hello, World!' ``` 在此示例中,`/hello` 路径被绑定到了 `hello()` 函数上。 #### 2. **模板引擎支持 (Jinja2)** Flask 集成了 Jinja2 模板引擎,允许开发者动态生成 HTML 页面。这有助于分离业务逻辑与前端展示层,从而提高代码可维护性和灵活性[^3]。例如: ```python from flask import render_template @app.route('/') def home(): return render_template('index.html', name='John Doe') ``` 在这里,`render_template` 方法加载了一个名为 `index.html` 的文件,并传递变量 `name` 给它。 #### 3. **请求上下文** Flask 支持多种内置对象来操作 HTTP 请求数据,比如 `request` 和 `session` 对象。这些工具可以帮助开发者获取客户端提交的数据以及存储临时状态信息。例如: ```python from flask import request @app.route('/login', methods=['POST']) def login(): username = request.form['username'] password = request.form['password'] return f'Username: {username}, Password: {password}' ``` 此代码片段展示了如何从表单中提取用户名和密码字段的内容。 --- ### Flask框架的应用场景 由于 Flask 架构简单且高度模块化,因此适合于各种规模的应用开发项目。具体来说,它的典型应用场景如下: #### 1. **小型至中型网站** 对于不需要复杂权限控制或大规模数据库交互的小型企业官网或者博客平台而言,Flask 可以快速搭建原型并投入实际运营[^1]。 #### 2. **RESTful API 接口服务** 借助 Flask-SQLAlchemy 扩展库以及其他第三方插件的支持,构建 RESTful API 成为了非常便捷的任务之一。下面是一个简单的例子: ```python from flask import jsonify @app.route('/api/data', methods=['GET']) def get_data(): data = {'key': 'value'} return jsonify(data) ``` 这段脚本返回 JSON 数据作为响应体内容。 #### 3. **微服务架构组件** 当企业采用分布式部署策略时,每一个独立的服务单元都可以基于 Flask 来实现自己的特定职责范围内的功能集合^。 #### 4. **学习与实验环境** 因为入门门槛低加上文档详尽的缘故,在教学过程中经常选用 Flask 讲解基础概念;另外也适用于个人兴趣驱动的研究探索活动当中[^3]^。 --- ### 总结 综上所述,Flask 不仅提供了必要的基础设施满足日常 web 应用开发需求,还保留足够的自由度让用户自行定制额外特性。无论是初学者还是经验丰富的工程师都能从中受益匪浅。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值