第一章 安装

一. 初识Flask

Flask的核心即简单且易于扩展,所以被称为微框架。Flask有3个主要依赖:

  1. Werkzeug:提供路由、调试和WEB服务网关接口(WSGI)子系统;
  2. Jinjia2:模板引擎;
  3. Click:命令行集成;

Flask只保留了WEB开发的核心,其他的功能都有外部扩展来实现,如数据库集成、表单验证,用户身份验证等。(备注:WSGI是Python中用来规定WEB服务器如何与python web应用进行沟通的标准)

二. 搭建开发环境

2.1 虚拟环境

虚拟环境是python解释器的一个私有副本,在这个环境中你可以安装私有包,而且不会影响系统中安装的全局python解释器。这样做的好处:

  1. 为每个项目单独创建虚拟环境,可以保证应用只能访问所在虚拟环境中的包,从而保证全局解释器的干净整洁,使其只作为创建更多虚拟环境的源;
  2. 使用虚拟环境不需要管理员权限。

2.2 创建和使用虚拟环境

2.2.1 pip工作流

  • 创建虚拟环境:python3和python2创建虚拟环境的方法有所不同:
    • python3中虚拟环境由标准库中的ven包原生支持:python3 -m venv venv(虚拟环境的名称)。通常虚拟环境的名称为venv,上述命令执行完毕后,项目目录中会出现一个名为venv的子目录,这里就是一个全新的虚拟环境,包含这个项目专用的Python解释器。
    • python2没有集成venv包,这一版python解释器要使用第三方工具virtualenv创建虚拟环境:sudo pip install virtualenv + virtualenv venv;
  • 激活虚拟环境:
    • source venv/bin/active(Linux) + venv\Scripts\active(windows)
    • 输入deactive退出虚拟环境,即还原当前终端会话的PATH环境变量。
  • 使用pip安装包:
    • python包使用包管理器pip安装,所有虚拟环境中都有这个工具
    • 使用豆瓣镜像安装:pip install flask -i https://pypi.douban.com/simple
    • pip freeze > requirements.txt 生成需求文件
    • pip install -r requirements.txt 安装requirements.txt列出的依赖包

2.2.2 Pipenv工作流

Pipenv是基于pip的python包管理工具,它的用法与pip相似,可以看作是pip的加强版,它的出现解决了旧的pip + virtualenv + requirements.txt的工作方式的弊端,使得包安装、包依赖管理和虚拟环境管理更加方便:

  • 安装Pipenv:pip install pipenv -i https://pypi.douban.com/simple
  • 执行pipenv install:会为当前项目创建一个文件夹,该文件夹包含
    • 隔离的python解释器环境,并安装pip、wheel、setuptools等基本包;
    • 如果项目中包含Pipfile文件,其中的依赖包也会被一并安装。
    • 默认情况下pipenv会同一管理所有虚拟环境,虚拟环境文件夹会在在C:\Users\Administrator\.virtualenvs\(Linux:~/.local/share/virtualenvs/)。若想在项目目录内创建虚拟环境文件夹,可以添加环境变量WORKON_HOME=PIPENV_VENV_IN_PROJECT。
  • pipenv shell:激活虚拟环境
  • pipenv run python hello.py:使用当前项目的虚拟环境运行hello.py程序。

2.2.3 总结

在以前我们通常使用pip搭配一个requirements.txt文件来记录 依赖。但requirements.txt需要手动维护,在使用上不够灵活。Pipfile的出 现就是为了替代难于管理的requirements.txt。

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

当需要在一个新的环境运行程序时,只需要执行pipenv install命令。Pipenv就会创建一个新的虚拟环境,然后自动从Pipfile中读取依赖并安装到新创建的虚拟环境中。

Pipenv会自动帮我们管理虚拟环境,所以在执行pipenv install安装Python包时,无论是否激活虚拟环境,包都会安装到虚拟环境中。后面 我们都将使用Pipenv安装包,这相当于在激活虚拟环境的情况下使用pip安装包。只有需要在全局环境下安装/更新/删除包,我们才会使用pip。 

三. Flask依赖包

pipenv install flask后,除了Flask包外,同时被安装的还有5个依赖包:

  • Jinjia2:模板渲染引擎
  • MarkupSafe:HTML字符转义工具
  • Werkzeug:WSGI工具集,处理请求与响应、内置WSGI开发服务器、调试器和重载器;
  • click:命令行工具
  • itsdangerous:提供各种加密签名功能
发布了132 篇原创文章 · 获赞 14 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/Geroge_lmx/article/details/104028500