Ubuntu 环境下搭建Flask框架
开始安装 Flask,首先创建一个虚拟环境,这个环境能够安装所有的东西,而你的主 Python 不会受到影响。另外一个好处就是这种方式不需要你拥有 root 权限。
开始搭建环境:打开一个终端窗口,选择一个你想要放置应用程序的位置以及创建一个包含它的新的文件夹。让我们把这个应用程序的文件夹称为 microblog 。
如果你正在使用 Python 3.4,先进入到 microblog 目录中接着使用如下的命令创建一个虚拟环境:
$ python -m venv flask
需要注意地是在某些系统中你可能要使用 python3 来代替 python。上面的命令行在 flask 文件夹中创建一个完整的 Python 环境。
如果你使用 Python 3.4 以下的版本(包括 python 2.7),你需要在创建虚拟环境之前下载以及安装 virtualenv.py 。
如果你使用 Linux,你需要获取一个包。例如,如果你使用 Ubuntu:
$ sudo apt-get install python-virtualenv
为了创建一个虚拟环境,请输入如下的命令行 $ virtualenv flask
通过一个接一个输入如下的命令行来安装 flask 以及扩展:
$ flask/bin/pip install flask $ flask/bin/pip install flask-login $ flask/bin/pip install flask-openid $ flask/bin/pip install flask-mail $ flask/bin/pip install flask-sqlalchemy $ flask/bin/pip install sqlalchemy-migrate $ flask/bin/pip install flask-whooshalchemy $ flask/bin/pip install flask-wtf $ flask/bin/pip install flask-babel $ flask/bin/pip install guess_language $ flask/bin/pip install flipflop $ flask/bin/pip install coverage
这里就不再一一演示了。
至此安装完毕
创建第一个Flask项目:
在 cd 到 microblog 文件夹后,我们开始为应用程序创建基本的文件结构: mkdir app mkdir app/static mkdir app/templates mkdir tmp
让我们开始为我们的 app 包(文件 app/__init__.py )创建一个简单的初始化脚本:
from flask import Flask app = Flask(__name__) from app import views
让我们编写第一个视图函数(文件 app/views.py ):
from app import app @app.route('/') @app.route('/index') def index(): return "Hello, World!"
其实这个视图是非常简单,它只是返回一个字符串,在客户端的网页浏览器上显示。两个 route 装饰器创建了从网址 / 以及 /index 到这个函数的映射。
能够完整工作的 Web 应用程序的最后一步是创建一个脚本,启动我们的应用程序的开发 Web 服务器。让我们称这个脚本为 run.py,并把它置于根目录:
#!flask/bin/python from app import app app.run(debug = True)
这个脚本简单地从我们的 app 包中导入 app 变量并且调用它的 run 方法来启动服务器。请记住 app 变量中含有我们在之前创建的 Flask 实例。
要启动应用程序,您只需运行此脚本(run.py)。你必须明确这是一个可执行文件,然后你可以运行它:
chmod a+x run.py
然后脚本可以简单地按如下方式执行:
./run.py
如果不执行以上操作直接用也是可以的:
$python run.py
在服务器初始化后,它将会监听 5000 端口等待着连接。现在打开你的网页浏览器输入如下 URL:
http://127.0.0.1:5000/
另外你也可以使用这个 URL:
http://localhost:5000/index
最后笔者有一点要提醒:
可能有小伙伴在按照手顺做的时候最后运行run.py出错了:
究其原因在这里:
最后一行return没有退格。是不是很尴尬。
这样就没问题了:
所以在ubuntu下编码还是需要找一款适合的IDE来,不然光开文本编辑器来很容易出错,当然高手更愿意喜欢用文本编辑器来编译以此来挑战自己QAQ。