Python Flask框架(一)初识Flask

Flask是使用Python编写的Web微框架。Web框架可以使我们不用关心底层的请求响应处理,更方便高效的编写Web程序。Flask有两个主要依赖,一个是WSGI(Web Server Gateway Interface,web服务器网关接口)工具集,另一个是Jinja2模版引擎。

创建开发环境

1. 安装pipenv

pipenv是基于pip的python包管理工具,可以看作是pip的加强版。具体来说,它是pip、Pipfile和Virtualenv的结合体,它让包安装、包依赖管理和虚拟环境管理更加方便。

在Python中,虚拟环境就是隔离的Python解释器环境。通过创建虚拟环境,你可以拥有一个独立的Python解释器环境。这样做的好处是可以为每一个项目创建独立的Python解释器环境,因为不同的项目常常会依赖不同的版本的库或Python版本。使用虚拟环境可以保持全局Python解释器环境的干净,避免包和版本的混乱,并且可以方便的区分和记录每个项目的依赖,以便在新环境下复现依赖环境。

2. 创建虚拟环境

首先确保当前工作目录在所开发项目的根目录,然后使用pipenv install命令为当前项目创建虚拟环境。

默认情况下,Pipenv会统一管理所有虚拟环境。在Windows系统中,虚拟环境文件夹会在C:\Users\Administrator.virtualenvs\目录下创建,而Linux或MacOS会在~/.local/share/virtualenvs/目录下创建。如果想在项目内创建虚拟环境文件夹,可以设置环境变量PIPENV_VENV_IN_PROJECT,这时名为.venv的虚拟环境文件夹将在项目根目录被创建。

在创建虚拟环境时,如果项目根目录下没有Pipfile文件,pipenv install命令还会在项目文件夹根目录下创建Pipfile和Pipfile.lock文件,前者用来记录项目依赖包列表,而后者记录了固定版本的详细依赖包列表。当我们使用Pipenv安装\删除\更新依赖包时,Pipfile以及Pipfile.lock会自动更新。

3. 安装Flask

类似 pip 的 -i (--index-url)选项,可以使用 --pypi-mirror 临时设置镜像源地址
pipenv install --pypi-mirror https://pypi.doubanio.com/simple flask

4. 切换生产环境和开发环境

开发环境是指我们在本地编写或测试程序时的计算机环境,而生产环境与开发环境相对,它指的是网站部署上线供用户访问时的服务器环境。根据运行环境的不同,Flask程序、扩展以及其他程序会改变相应的行为和设置。为了区分程序运行环境,Flask提供了一个FLASK_ENV环境变量来设置环境,默认为production。

shell 复制代码
$ export FLASK_ENV=development
$ export FLASK_ENV=production

最小Flask程序

python 复制代码
"""
app.py
"""

from flask import Flask
app = Flask(__name__)

@app.route('/')
def index():
	return '<h1>Hello Flask!</h1>'

Flask构造函数,参数时模块或包的名称(app.py),该函数的返回是类的实例app。

编写Flask程序,我们要做的只是建立处理请求的函数,并为其定义对应的URL规则。只需为函数附加app.route()装饰器,并传入URL规则作为参数(这里的URL是相对URL,既不包括域名的URL),我们就可以让URL与函数建立关联。这个过程我们称为注册路由,路由负责管理URL和函数之间的映射,而这个函数则被称为试图函数。

在这个程序里,app.route装饰器把根地址/和index()函数绑定起来,当用户访问这个URL时就会触发index()函数。

启动开发服务器

pipenv run flask run

flask run命令运行的开发服务器默认会监听http://127.0.0.1:5000/地址(按Ctrl+C退出),并开启多线程支持。当我们打开服务器访问这个地址时,会看到网页上显示"Hello Flask!"。

一个完整的网站当然不能只返回一句"hello world",我们需要模版(template)和静态文件(static file)来生成更加丰富的网页。模版就是包含程序页面的HTML文件,静态文件则是需要在HTML文件中加载的CSS和JavaScript文件,以及图片字体文件等资源文件。默认情况下,模版文件存放在项目根目录中的templates文件夹中,静态文件存放在static文件夹下,这两个文件夹需要和包含程序实例的模块处于同一目录下,对应的项目结构示例如下:

bash 复制代码
hello/
	- templates/
	- statics/
	- app.py
相关推荐
zwd20052 小时前
Manim add_sound 用法详解:time_offset、gain、多条音频与旁白对齐(2026 最新教程,0.21.0)
python·音频·动画·manim·数学动画·add_sound
YYYing.2 小时前
【Python系列 (一) 】Python基础疑难杂症
开发语言·python
AINative软件工程2 小时前
LLM 应用的 Observability 三件套:Metrics、Logs、Traces 的生产级接入工程实践
后端·python·架构
JCHT1818184 小时前
源头厂家免拆维护:HT-6500H引领政企会议室革新
大数据·python
朝朝辞暮i12 小时前
VLA 系统学习第 4 课:一个 Batch 进入神经网络后,模型到底是怎么“学会”的?
人工智能·python·神经网络·vla
Ada's12 小时前
【计算机基础系列】003:Python数据结构
开发语言·数据结构·python
2601_9628857213 小时前
如何用 Python 计算 TRIX 三重指数平滑均线指标?
开发语言·python
还卿一钵无情泪13 小时前
Unsloth 微调 构建自己的大模型 没有GPU也能微调
linux·开发语言·人工智能·python·大模型·nlp·unsloth
蜗牛互联网15 小时前
Python消费Responses SSE事件:增量文本、超时与取消
java·开发语言·人工智能·后端·python
statistican_ABin16 小时前
中国国际旅游发展分析报告—基于世界银行国际旅游数据的多维度分析
python·机器学习·旅游