zoukankan      html  css  js  c++  java
  • Python Web Flask框架之 Flask 简介及其虚拟环境搭建

    Flask简介

    对于Python Web开发框架来说,可谓是百花齐放,其中较为主流的有Django、Flask、Pyramid、Bottle以及Tornado等,每种框架都有其独特之处,均具其所适用的场合。相对于其他框架而言,Flask是一个轻量级的Web应用框架,其基于Werkzeug实现的WSGI(Web Server Gateway Interface,Web服务器网关接口)和Jinja2(python应用模板引擎)。Flask的特点是“微小而强大”,其是一个微框架,但其功能并不逊色,实际中所需用到的所有功能均可通过扩展包来实现,如flask-bootstrap、flask-script以及flask-wtf等,这些扩展包相当于一件件装备,Flask装上它们将会变得能加的强大。同时,由于Flask是开源地,其扩展装备也就顺应地可以自己打造,整出一个自己专属风格的Flask。

    虚拟环境

    基本介绍

    什么是虚拟环境?简单来说,可以把虚拟环境理解为一个个独立的“系统环境”,其是基于本机的OS而模拟出的一种与本机相容的且功能相当的环境。对此而言,虚拟环境即为python环境的副本,其与本机python源环境具有一样的功能。

    那么我们为什么需要虚拟环境呢?从Python Flask 角度出发,虚拟环境的建立是很有必要的。因为我们知道Flask都是一件件扩展装备装起来的,当打不同的BOSS的时候(对应不同的WEB应用开发),我们的Flask就需要配备不同的武器装备了。在给Flask买装备时,我们就会发现一个问题,如果我们不断地直接给Flask买装备然后装上(这里指在Python源环境中install扩展),那么Python Flask源必然会难以负载且不便管理,这就相当于打大BOSS时候你让Flask把所有武器都带上,很容易想到这是多累。在这时候就需要一个装备仓库了,其中分BOSS类别放了不同的武器包,打什么BOSS就带什么,光看着就知道这样我们的Flask压力会减少很多。这个装备仓库就是我们的系统环境,而不同的武器包则对应不同的虚拟环境,在不同应用开发中对Flask进行不同的扩展,这可减小WEB开发负担,也可简便对开发的管理,且虚拟环境的使用能够帮助开发者灵活地使用不同开发环境,有针对性地使用项目资源。

    创建方法

    创建虚拟环境的方法有多种,所依赖的包也有很多,其中利用virtualenv库来创建虚拟环境较为简便,在此以其为例,作相关介绍。

    第一步——使用pip安装virtualenv库

    pip install virtualenv

    安装完后可通过查看版本来确认是否成功安装,若正常显示版本号则安装成功

    virtualenv --version

    第二步——在相应项目文件夹中安装虚拟环境

    例如,先创建了项目文件夹flaskproject,然后进入目录,直接执行安装命令,其中第三行venv为虚拟环境的名称,一般习惯取为‘venv’

    mkdir flaskproject
    cd flaskproject
    virtualenv venv

    之后等待其完成安装即可

    New python executable in venv/bin/python
    Installing distribute............done.

    使用方法

    安装虚拟环境完毕后,就会在相应的文件目录下生成一个虚拟环境文件夹(如上操作则产生文件夹venv)。如需进入虚拟环境,只需要使用相应的激活命令即可

    venvscriptsactivate

    激活后便可使用虚拟环境来安装Flask和为其添加装备(激活后可视其为本机系统一样使用,且其中的python环境与本机python环境完全独立,互不干扰,即所有通过pip安装的都只会存放在本虚拟环境中,这对于不同的应用管理是很有帮助的)

    pip install flask

    当不再想使用虚拟环境而想重返本机全局python环境中,一种果断迅猛的方法是直接关闭DOS窗口。当然此外也可以使用一种稍显优雅的方式来注销激活(直接在项目文件夹命令行输入命令)

    deactivate

    以上便是本次有关Flask简介和虚拟环境的基础介绍,旅行前期工作已准备完成,接下来让我们一起游历Flask王国吧。

  • 相关阅读:
    LeetCode OJ:Divide Two Integers(两数相除)
    LeetCode OJ:Sqrt(x)(平方根)
    LeetCode OJ:Excel Sheet Column Number(表格列数)
    LeetCode OJ:Compare Version Numbers(比较版本字符串)
    LeetCode OJ:Valid Parentheses(有效括号)
    LeetCode OJ:Longest Common Prefix(最长公共前缀)
    LeetCode OJ:Linked List Cycle II(循环链表II)
    LeetCode OJ:Permutations II(排列II)
    LeetCode OJ:Permutations(排列)
    MongoDB复制二:复制集的管理
  • 原文地址:https://www.cnblogs.com/Unikfox/p/9226958.html
Copyright © 2011-2022 走看看