当前位置:网站首页>Flask框架——项目可安装化
Flask框架——项目可安装化
2022-08-03 17:53:00 【白巧克力LIN】
目录
在上篇文章中学习了Flask框架——Flask-Sijax,这篇文章我们学习Flask框架——项目可安装化。
项目可安装化
项目可安装化是指将一个项目变为发行文件,可以安装到其他环境中。
简单来说就是把项目变为安装包、软件或者可交互的网页,让不会代码的人也能用。
项目可安装化的好处:
可以从任何位置导入并使用;
可以使用pip install yourproject.whl来安装项目并安装相关依赖;
测试工具可以分离测试环境和开发环境。
描述项目
在进行可安装化之前,需要创建setup.py文件对项目及项目文件进行描述,代码如下所示:
from setuptools import find_packages, setup
setup(
name='flaskr',
version='1.0.0',
packages=find_packages(),
include_package_data=True,
zip_safe=False,
install_requires=[
'flask',
],
)
其中:
name:进行项目可安装化形成的安装包名称;
version:安装包版本;
package:告诉Python 包所包括的文件夹(及其所包含的 Python 文件),使用find_packages()自动找到这些文件;
include_package_data:假如项目还有静态文件夹、模板文件夹时,需要设置为True,同时还需要在创建一个名为MANIFEST.in 文件来说明这些文件有哪些;
zip_safe:是否可安装化成压缩包;
install_requires:安装要求。
MANIFEST.in文件代码如下所示:
include flaskr/schema.sql #包含schema.sql文件
graft flaskr/static
graft flaskr/templates
global-exclude *.pyc
其中:
include表示包含所有,graft表示在某文件夹中的文件,global-exclude表示除了什么以外的文件。
上面MANIFEST.in文件作用是告诉Python复制所有static和templates文件夹中的文件,schema.sql文件,但是排除所有字节文件。
可安装化项目
把上一步中的setup.py文件和MANIFEST.in文件写好后,在终端执行可安装化项目命令:
pip install -e .
该命令作用是在当前目录下(.) 寻找setup.py文件并在编辑或者开发模式下安装。
编辑模式是指当改变本地代码后,只需要重新项目。
我们可以使用pip list来查看执行可安装化命令后,项目的虚拟环境情况,如下图所示:

进行项目可安装化后的项目只是在虚拟环境中安装了flaskr,该flaskr是我们在setup.py文件中设置的项目可安装化后的安装包名。除了这个变化之外,项目几乎没有一点改变,启动项目还是原来未可安装化项目前启动的方式。
最大的好处是可以在任何地方运行应用,而不仅仅是在本项目目录下。
好了,关于Flask框架——项目可安装化就讲到这里了,感谢观看,下篇文章继续学习Flask框架——基于类的视图。
公众号:白巧克力LIN
该公众号发布Python、数据库、Linux、Flask、自动化测试、Git等相关文章!
- END -
边栏推荐
- gcc的学习及 版本太低如何在conda环境下重新进行安装
- Crack: WebKitX ActiveX and WebKitX VHX
- 【保姆级示例向】观察者模式
- Execution plan of mysql
- 【刻意练习观后管】刻意练习
- 深度学习跟踪DLT (deep learning tracker)
- China Hashpower Conference Ascension Kunpeng Ecological Forum was held; Kuaishou established an independent to B business department…
- 【时间的比较】
- 星巴克输血赶不上流血
- mysql之的执行计划
猜你喜欢

CodeTON Round 2 (Div. 1 + Div. 2, Rated, Prizes), problem: (D) Magical Array

一些嵌入式软件设计经验

isNotBlank与isNotEmpty

A complete detailed tutorial on building intranet penetration ngrok (with pictures and truth)

cell delay和net delay

es6新增-Generator(异步编程的解决方案2)

微信小程序分享功能

CC2530_ZigBee+华为云IOT:设计一套属于自己的冷链采集系统

ICDAR比赛技术分享

揭秘deepin 23,从这里开始!
随机推荐
Interpretation of the paper (JKnet) "Representation Learning on Graphs with Jumping Knowledge Networks"
es6新增-Promise详解(异步编程的解决方案1)
Win11系统的显卡驱动安装的详细方法步骤
一加Ace值得买吗?用实力诠释性能的强大
NLP范式新变化:Prompt
宝塔搭建企业招聘网站源码实测
AI智能剪辑,仅需2秒一键提取精彩片段
【机器学习】机器学习的基本概念/术语2
How to install and start VNC remote desktop service on cloud GPU?
xxl-job 实现email发送警告的代码解析(一行一行代码解读)
ASA归因:如何评估关键词的投放价值
Uniswap或将开启“费用开关”,UNI持有者可享受分红
目标检测-YOLOv3理论讲解
关于vscode安装包下载太慢解决方法
2021年数据泄露成本报告解读
Cyanine5.5 alkyne|Cy5.5 alkyne|1628790-37-3|Cy5.5-ALK
ThreeJS简介
A complete detailed tutorial on building intranet penetration ngrok (with pictures and truth)
六、用户身份认证
【技术白皮书】第一章:OCR智能文字识别新发展——深度学习的文本信息抽取