所需工具:
python3.4
flask
nginx
gunicorn
supervisor
系统环境:
Ubuntu 14.04LTS
我们先写一个最基本的flask应用:
demo.py
from flask import Flask
app = Flask(**name**)
@app.route('\')
def index():
return 'Hello World.'
if __name__ == __main__:
app.run()
执行这个py档案,开启浏览器访问127.0.0.1:5000就能看到显示Hello World的页面 .
如果让这个flask引用监听来自公网ip的请求,理论上你跑此程式的机器就相当于一个伺服器了,然而这个伺服器并不完美,所以我们需要nginx和gunicorn来增加它的功能,让它真刀真枪上生产环境的时候能按要求执行 。
flask自带的WSGI框架效能很差劲 , 只能适用于开发环境除错使用 。我们用专业一点的gunicorn(还有很多其他优秀的框架)替代flask自带的WSGI框架 。
配置完后 , 通过命令’/usr/local/bin/gunicorn -b127.0.0.1:5000‘启动应用 。开启浏览器访问127.0.0.1:5000,同样能够得到返回页面
然而gunicorn也仅仅是一个python的WSGI框架而已,要让它真正处理来自网际网路的各类访问功能还是有点欠缺,这时候就需要用到大名鼎鼎的nginx 伺服器来替gunicorn遮风挡雨了 。
Ubuntu下安装nginx可以用命令
sudo apt-get install nginx
安装后需要进行下配置:
cd /etc/nginx/sites-available
sudo vi test (test为配置名称,可以根据自己专案进行命名)
test档案的配置为:
server {
listen 80; # 监听80埠
location / {
proxy_pass :127.0.0.1:5000; # 代理本机127.0.0.1:5000的服务
}
location /static {
alias /home/ubuntu/myproject/myblog/app/static; # 负载均衡
}
}
cd ..
cd sites-enable
sudo ln -s ../sites-available/lwhile . (建立软连结 , 别漏掉最后的.)
sudo service nginx reload
sudo service nginx restart
这样nginx的基本配置档案就写好了 接下来我们配置程序管理工具supervisor supervisor可以在后面启动你的python程序 , 这样很方便
1.cd /etc/supervisor/conf.d
2.sudo vi test.conf (test为档名)
[program:test]
mand = /usr/local/bin/gunicorn -b127.0.0.1:5000 /home/ubuntu/myproject/test.py
3.sudo supervisorctl
4.reload
5.start test
如果一切正常 , 做完这所有步骤之后,现在公网的ip访问你的主机,就可以开启你的flask应用了
python是一款应用非常广泛的指令码程式语言,谷歌公司的网页就是用python编写 。python在生物资讯、统计、网页制作、计算等多个领域都体现出了强大的功能 。python和其他指令码语言如java、R、Perl 一样,都可以直接在命令列里执行指令码程式 。工具/原料
python;CMD命令列;windows作业系统
方法/步骤
1、首先下载安装python , 建议安装2.7版本以上,3.0版本以下 , 由于3.0版本以上不向下相容,体验较差 。
2、开启文字编辑器,推荐editplus,notepad等,将档案储存成 .py格式 , editplus和notepad支援识别python语法 。
指令码第一行一定要写上 #!usr/bin/python
表示该指令码档案是可执行python指令码
如果python目录不在usr/bin目录下,则替换成当前python执行程式的目录 。
3、编写完指令码之后注意除错、可以直接用editplus除错 。除错方法可自行百度 。指令码写完之后,开启CMD命令列,前提是python 已经被加入到环境变数中 , 如果没有加入到环境变数 , 请百度
4、在CMD命令列中,输入 “python” + “空格” , 即 ”python “;将已经写好的指令码档案拖拽到当前游标位置,然后敲回车执行即可 。
推荐阅读
- 路由器ip怎么查看,路由器ip哪里看
- 视频号示意图怎么设置,视频号示意图怎么设置的
- vue中jquery实现跨域,vue解决跨域的三种方法
- 游戏赛车,游戏赛车视频
- python的打点函数 python的点号
- 鲤鱼ace什么时候直播,主播鲤鱼ace在哪个大学
- java测试代码怎么写,java 测试代码
- 火车头代理ip,火车头怎么用代理ip
- ant修改java代码 ant 编译java