Flask 依赖于两个外部库: Werkzeug 和 Jinja2 。 Werkzeug 是一个 WSGI (在 web 应用和多种服务器之间开发和部署的标准 Python 接口) 的工具集,Jinja2 负责渲染模板。
一、安装
Flask安装的前提条件
1.已安装python2.x版本
2.已安装easy_install
在安装flask之前,你必须要先安装python和easy_install,easy_install只支持pyhon2.x版本不支持python3.x版本,所以你在安装python的时候最好选择python2.x。这里是2.7.
python2.7的安装很简单,本站内有很多篇文章介绍,这里不加描述,路径任意,安装完成加入环境变量便可。
win7 :
配置环境变量
方法一:(计算机-》属性--》高级系统设置--》环境变量--》添加python安装路径)
方法二:cmd下
设置:set PYTHONPATH=%PYTHONPATH%;C:\My_python_lib
查看:echo %PATH%
easy_install安装:
下载地址:http://pypi.python.org/pypi/setuptools
windows版本的只会有一个 ez_setup.py 脚本,下载下来放在D:\Python\python2.7目录下执行,则会自动安装easy_install,目录:D:\Python\python2.7\Scripts
easy_install加入环境变量:路径为D:\Python\python2.7\Scripts
安装好这两个后则开始安装flask
安装 virtualenv,这个主要是用来做解释器环境隔离的,避免同一机器上的多个python或者多个python的库依赖
然后配置虚拟环境
然后cd到myvir目录的Scripts下
输入activate.bat,就进入了虚拟环境了,然后输入easy_install Flask安装
测试结果,是否安装成功:
在pycharm软件中,要创建flask项目,然后选择myvir中的python.exe运行脚本。
创建简单hello world脚本,文件名为test1.py:
from flask import Flask
app=Flask(__name__)
@app.route('/')
def hello_world():
return "Hello World~~~"
if __name__ == '__main__':
app.run()
</div>
然后点击运行则会显示
可以通过给出的网址进行访问。注意:此时一直处于运行状态,完成后要关闭该端口则点击pycharm中的Run->stop。
默认只有本地可以访问,端口为5000.
最后一行修改为 app.run('0.0.0.0', 12345),就可以让其它人访问了
解析:
from flask import Flask</div>
导入 Flask 类
app = Flask(__name__)</div>
实例化对象 app ,参数为应用模块或包的名称,这里 __name__ 指的是 __main__ 主程序。这个参数是必需的,这样 Flask 就可以知道在哪里找
到模板和静态文件等东西。
@app.route("/")
使用 route() 装饰器告诉 Flask 触发函数的 URL 。可以自定义,如 @app.route("/test1.py"),访问时则后面要接文件名
def hello():
return "Hello World!"
</div>
定义的函数,用来生成相关联的 URL ,并返回需要在用户浏览器中显示的信息。
app.run()
运行服务器应用,运行后默认只有本地可以访问,如需让其他连接,可以指定 host ,如: app.run(host='0.0.0.0')
默认使用的端口是: 5000 ,可以使用自定义的主机和端口: app.run(host="0.0.0.0",port=8000)
可外部访问的服务器
如果你运行服务器,你会注意到它只能从你自己的计算机上访问,网络中其它任何的地方都不能访问。这是在默认情况,因为在调试模式,用户可以在你的计算机上执行任意 Python 代码。
如果你 禁用了 debug 或信任你所在网络的用户 ,你可以简单修改调用 run() 的方法使你的服务器公开可用,如下:
app.run(host='0.0.0.0')
这会让操作系统监听所有公开的IP。
二、windows下安装3.3版本的:
注意:如果默认已经安装了2.7的,想安装3.3的,则必须进入到3.3安装目录内,然后运行python ez_setup.py(ez_setup.py下载地址:https://pypi.python.org/pypi/setuptools)。
然后进入到刚生成的scripts目录下,执行下面的命令安装virtualenv。
同样,产生虚拟环境的时候也要用3.3的virtualenv,否则报错。
然后cd到myvir目录的Scripts下
输入activate.bat,就进入了虚拟环境了,然后输入easy_install Flask安装
三、centos6.4安装python2.6的flask框架::
安装执行命令:
yum install openssh-server python --version(查看是否是符合的版本) yum install python-setuptools easy_install virtualenv(系统默认安装了easy_install2.6) virtualenv</div>
安装完毕,你可以立即打开 shell 然后创建你自己的环境。
1.全局(不推荐):
easy_install Flask 全局安装,下面有局部安装的方法。
测试代码:
from flask import Flask
app = Flask(__name__)
@app.route('/')
def hello_world():
return "Hello World!"
if __name__ == '__main__':
app.run(host='0.0.0.0')
</div>
文件存放的位置没有要求,在任何地方都可以执行。( 全局安装)
从另外的服务器访问:http://IP:5000的方式
然后其他的,比如模板渲染则同样只需要在你的项目中创建templates文件夹的方式实现。
2.局部环境:
我通常创建一个项目文件夹,并在其下创建一个 venv 文件夹
[root@localhost opt]# mkdir myweb [root@localhost opt]#cd myweb [root@localhost myweb]# virtualenv venv(注意:这里的venv目录名字是自己设定的) New python executable in venv/bin/python Installing setuptools, pip...done.</div>
现在,无论何时你想在某个项目上工作,只需要激活相应的环境。
好处:
所有东西都已经安装在这个虚拟环境中了,因此你自已主要的Python安装环境则不会受影响(可以同时支持几个环境的使用)。附加的一个好处是,用这种方式来安装时不需要root管理员权限。
迁移之后,执行文件会因为改变路径无法使用,还是需要重新构建环境。
在 OS X 和 Linux 上,执行如下操作:
[root@localhost venv]# . bin/activate #激活(每次运行都有是激活状态) (venv)[root@localhost venv]#</div>
下面的操作适用 Windows:
$ venv\scripts\activate
无论通过哪种方式,你现在应该已经激活了 virtualenv(注意你的 shell 提示符显示的是活动的环境)。
现在你只需要键入以下的命令来激活 virtualenv 中的 Flask:
(venv)[root@localhost venv]# pip install Flask #只需开始执行一次 ...... Successfully installed Flask Werkzeug Jinja2 itsdangerous markupsafe Cleaning up...</div>
几秒钟后,一切都搞定了。
可能会出错:
SSLError: The read operation timed out
Storing debug log for failure in /root/.pip/pip.log
这种错误的话只要重新执行该命令就可以了。
执行. activate.csh可以退出 virtualenv(不知道是不是正确的方式,但确实可以退出)
四、centos下安装python3.3的flask框架:
要是3.3的easy_install:
[root@localhost python3.3.3]# wget https://bootstrap.pypa.io/ez_setup.py [root@localhost python3.3.3]# python3.3 ez_setup.py (一定要指定3.3的执行文件,不然会使用系统的默认python) [root@localhost python3.3.3]# easy_install</div>
此时补齐可看到版本
easy_install easy_install-2.6 easy_install-3.3
然后后面的安装跟2.6的步骤是一样的,只是安装的时候一定要指定确定的命令(3.3的还是2.6的)
安装完成后,两种版本互补影响,都有自己的虚拟环境,执行自己环境内的脚本。
之前安装成功,后面在另外一台服务器上安装则报错:
[root@www python3.3]# python3.3 ez_setup.py Extracting in /tmp/tmpj462kb Traceback (most recent call last): File "ez_setup.py", line 332, in <module> sys.exit(main()) File "ez_setup.py", line 329, in main return _install(archive, _build_install_args(options)) File "ez_setup.py", line 51, in _install with archive_context(archive_filename): File "/usr/local/python3.3/lib/python3.3/contextlib.py", line 48, in __enter__ return n

