Linux ubantu中安装虚拟/使用环境virtualenv以及python flask框架

时间:2021-07-04 02:30:59

今天学习了python flask框架的安装过程以及使用案例,感觉网上讲的东西都没有从我们这种初学者的角度去考虑(哈哈),最后还是奉上心得:

1.安装virtualenv

$ sudo apt-get install python-virtualenv

2.virtualenv安装完成以后,先创建一个属于自己的工作环境(myproject),在该目录下创建虚拟环境(myenv),以后的项目可在这个环境中开发,真实环境中测试,一个电脑全搞定。

$ mkdir myproject
$ cd myproject
$ virtualenv myenv
New python executable in myenv/bin/python
Installing distribute............done.

ps:可以在任何目录下创建项目(文件夹),但是创建项目以后必须安装virtualenv,才能是安装了虚拟环境,在新建的虚拟环境中(此处myenv为新建),会产生多个文件:

aaarticlea/png;base64,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" alt="" />

可在该目录中创建自己的项目文件,就是下面提到的test项目。虚拟环境中还须将python、flask装上,下面在叙述。

3.激活工作虚拟环境

$ . myenv/bin/activate

4.激活以后,安装flask

$ pip install Flask

安装成功。。。

使用案例:

作为初学者可以看一下这个文件的路径(当前窗口下使用pwd),你会发现是在home/下面,创建了myproject/myenv,这个文件中我们就可以创建我们的开发项目了,也可以用命令:

$ mkdir test

在test文件夹中可以创建以下几个目录,static 用来存放 css/js 等文件,templates 用来存放 flask 要用的 Jinja2 模版,pages 用来存放我们静态html,就可以开始开发了,这个过程类似于tornado框架。

最后做一个简单的测试:

1.在创建的test文件夹中创建一个test.py文件

from flask import Flask
app = Flask(__name__) @app.route('/')
def hello_world():
return 'Hello World!' if __name__ == '__main__':
app.run()

2.在终端执行该文件:

$ python hello.py
* Running on http://127.0.0.1:5000/

3.打开浏览器,地址栏输入http://127.0.0.1:5000/,出现Hello World即说明你成功了。

aaarticlea/png;base64,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" alt="" />

ps:在下次打开项目时,一定要先在终端中激活工作虚拟环境,即上述第3步,然后再进入到响应需要执行的.py文件夹执行文件。

后面陆续奉上完整例子。