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
相关推荐
CodeDevMaster41 分钟前
LangChain之检索增强生成RAG
人工智能·python·llm
凡解1 小时前
[自动化测试:实践01]:2:(4-1 )元素定位(selenium)在实际场景中的应用2
自动化测试·python·selenium·测试工具
网络安全工程师老王1 小时前
flask请求头回显的学习和探究如何进行错误页面污染回显
web安全·网络安全·信息安全·flask
卖个几把萌1 小时前
【04】Selenium+Python 手动添加Cookie免登录(实例)
python·selenium·测试工具
数学人学c语言2 小时前
yolov11剪枝
pytorch·python·深度学习
海阔天空_20132 小时前
浏览器自动化库playwright简介
网络·python·自动化
兔子的洋葱圈2 小时前
Python的3D可视化库 - vedo (3)visual子模块 点对象的可视化控制
python·数据可视化
努力的小好2 小时前
【python】数据可视化之图像处理
图像处理·python·信息可视化
一只小菜鸡2 小时前
python+django5.1+docker实现CICD自动化部署springboot 项目前后端分离vue-element
python·docker·自动化
为祖国添砖爪哇2 小时前
【自动化Selenium】Python 网页自动化测试脚本(上)
python·selenium·自动化