首页 旅游资讯 线路攻略 景点大全 国内游 境外游 美食特产
您的当前位置:首页正文

在Linux上安装Python的Flask框架和创建第一个app实例的教程

2024-08-04 来源:锐游网
在Linux上安装Python的Flask框架和创建第⼀个app实例

的教程

⽆论你在linux上娱乐还是⼯作,这对你⽽⾔都是⼀个使⽤python来编程的很好的机会。回到⼤学我希望他们教我的是Python⽽不是Java,这学起来很有趣且在实际的应⽤如yum包管理器中很有⽤。

本篇教程中我会带你使⽤python和⼀个称为flask的微型框架来构建⼀个简单的应⽤,来显⽰诸如每个进程的内存使⽤,CPU百分⽐之类有⽤的信息。前置需求

Python基础、列表、类、函数、模块。HTML/CSS (基础)。

在⼤多数Linux发⾏版上Python是默认安装的。下⾯的你命令可以让你看到安装的版本。

[root@linux-vps ~]# python -VPython 2.7.5

我们会使⽤3.x的版本来构建我们的app。根据Python.org所说,现在只对这个版本进⾏改进,⽽且不向后兼容Python 2。注意: 在开始之前,我强烈建议你在虚拟机中尝试这个教程,因为Python是许多Linux发⾏版的核⼼组件,任何意外都可能会损坏你的系统。

以下步骤是基于红帽的版本如CentOS(6和7),基于Debian的版本如UbuntuMint和Resbian可以跳过这步,Pythonn 3应该默认已经安装了。如果没有安装,请⽤apt-get⽽不是yum来安装下⾯相应的包。

[leo@linux-vps] yum groupinstall 'Development Tools'

[leo@linux-vps] yum install -y zlib-dev openssl-devel sqlite-devel bzip2-devel[leo@linux-vps] wget https://www.python.org/ftp/python/3.4.2/Python-3.4.2.tgz[leo@linux-vps] tar -xvzf Python-3.4.2.tgz[leo@linux-vps] cd Python-3.4.2[leo@linux-vps] ./configure[leo@linux-vps] make

# 推荐使⽤ make altinstall 以覆盖当前的 python 库[leo@linux-vps] make altinstall

成功安装后,你应该可以⽤下⾯的命令进⼊Python3.4的shell了。

[leo@linux-vps]# python3.4

Python 3.4.2 (default, Dec 12 2014, 08:01:15)[GCC 4.8.2 20140120 (Red Hat 4.8.2-16)] on linux

Type \"help\>>> exit ()

使⽤pip来安装包

Python有它⾃⼰的包管理去,与yum和apt-get相似。你将需要它来下载、安装和卸载包。

[leo@linux-vps] pip3.4 install \"packagename\"[leo@linux-vps] pip3.4 list

[leo@linux-vps] pip3.4 uninstall \"packagename\"

Python虚拟环境

在Python中虚拟环境是⼀个放置你的项⽬的依赖环境的⽬录。这是⼀个将带有不同的依赖环境的项⽬隔离的好办法。它可以让你不⽤sudo命令就能安装包。

[leo@linux-vps] mkdir python3.4-flask[leo@linux-vps] cd python3.4-flask

[leo@linux-vps python3.4-flask] pyvenv-3.4 venv

要创建虚拟环境你需要使⽤“pyvenv-3.4”命令。上述命令会在venv⽂件夹的内部创建⼀个名为lib的⽬录,这⾥会安装项⽬所依赖的包。这⾥同样会创建⼀个bin⽂件夹容纳该环境下的pip和python可执⾏⽂件。为我们的Linux系统信息项⽬激活虚拟环境

[leo@linux-vps python3.4-flask] source venv/bin/activate[leo@linux-vps python3.4-flask] which pip3.4~/python3.4-flask/venv/bin/pip3.4

[leo@linux-vps python3.4-flask] which python3.4~/python3.4-flask/venv/bin/python3.4

使⽤pip安装flask

让我们继续安装第⼀个模块flask框架,它可以处理访问路由和渲染显⽰我们app的模板。

[leo@linux-vps python3.4-flask]pip3.4 install flask

在flask中创建第⼀个应⽤第⼀步:创建你app的⽬录

[leo@linux-vps python3.4-flask] mkdir app

[leo@linux-vps python3.4-flask] mkdir app/static[leo@linux-vps python3.4-flask] mkdir app/templates

在python3.4-flask⽂件夹中创建⼀个名为app的⽂件夹,它包含了两个⼦⽂件夹“static”和“templates”。我们的Python脚本会放在app⽂件夹,像css/js这类⽂件会在static⽂件夹,template⽂件夹会包含我们的html模板。第⼆步:在app⽂件夹内部创建⼀个初始化⽂件

[leo@linux-vps python3.4-flask] vim app/_init_.pyfrom flask import Flask

app = Flask(__name__)from app import index

这个⽂件会创建⼀个Flask的新的实例,并加载我们存储在index.py⽂件中的python程序——这个⽂件我们之后会创建。

[leo@linux-vps python3.4-flask]vim app/index.pyfrom app import app

@app.route('/')def index():

import subprocess

cmd = subprocess.Popen(['ps_mem'],stdout=subprocess.PIPE,stderr=subprocess.PIPE)out,error = cmd.communicate()memory = out.splitlines()

return

flask中的访问路由通过“路由装饰器”处理。它⽤于将⼀个 URL 绑定到函数。

@app.route('/')

@app.route('/index')

要在python中运⾏shell命令,你可以使⽤Subprocess模块中的Popen类。

subprocess.Popen(['ps_mem'],stdout=subprocess.PIPE,stderr=subprocess.PIPE)

这个类会使⽤⼀个列表作为参数,列表的第⼀项默认是可执⾏的程序,下⼀项会是参数,这⾥是个另外⼀个例⼦。

subprocess.Popen(['ls', ‘-l'],stdout=subprocess.PIPE,stderr=subprocess.PIPE)

stdout和stderr会相应地存储命令的输出和错误。你可以使⽤Popen的communicate⽅法来访问输出。

out,error = cmd.communicate()

要更好地⽤html模板显⽰输出,我会使⽤splitlines()⽅法,

memory = out.splitlines()

关于subprocess模块更多的信息会在教程的最后给出。第三步:创建⼀个html模板来显⽰我们命令的输出。要做到这个我们使⽤flask中的Jinja2模板引擎来为我们渲染。最后你的index.py⽂件应该看起来像这样:

from flask import render_templatefrom app import app

def index():

import subprocess

cmd = subprocess.Popen(['ps_mem'],stdout=subprocess.PIPE,stderr=subprocess.PIPE)out,error = cmd.communicate()memory = out.splitlines()

return render_template('index.html', memory=memory)

现在在你的模板⽬录下创建⼀个index.html模板,flask会⾃动搜索这个⽬录下的模板。

[leo@linux-vps python3.4-flask]vim app/templates/index.html

Memory usage per process

{% for line in memory %}{{ line.decode('utf-8') }}

{% endfor %}

Jinja2模板引擎允许你使⽤“{{ … }}”分隔符来输出结果,{% … %}来做循环和赋值。我使⽤“decode()”⽅法来格式化。第四步:运⾏app

[leo@linux-vps python3.4-flask]vim run.pyfrom app import appapp.debug = True

app.run(host='174.140.165.231', port=80)

上⾯的代码会在debug模式下运⾏app。如果你不指定 IP 地址和端⼝,默认则是localhost:5000。

[leo@linux-vps python3.4-flask] chmod +x run.py[leo@linux-vps python3.4-flask] python3.4 run.py

我已经加了更多的代码来显⽰CPU、I/O和平均负载。

你可以在这⾥浏览完整的代码。

这是⼀个对flask的简短教程,我建议你阅读下⾯的教程和⽂档来更深⼊地了解。

因篇幅问题不能全部显示,请点此查看更多更全内容