标签:python nginx mac fastcgi flask
对于一个iOS开发者来说,会写后台应用并非必要的技能,然而掌握一门后台语言却无疑可以锦上添花,不仅可以对前后台架构有更加全面的了解,同时在实际开发工作中也可以自己写一些后台应用。
flask框架本身集成了一个简单的服务器,可以在本机调用,然而在这种情况下要调用Python应用接口就只能使用模拟器调试,若想要使用真机调试,我们还是需要正儿八经地部署服务器。
在这里,我们介绍一种Nginx搭配FastCGI实现Mac环境下的本地服务器部署。
ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
b. 安装Nginx
sudo brew install nginx(报错时去掉sudo)
c. 启动Nginx
sudo nginx
d. 修改配置文件(文件默认是只读的,可以在右键菜单->显示简介中更改读写权限)
路径:/usr/local/etc/nginx/nginx.conf
server {
listen 8000;//Nginx监听端口
server_name localhost;
charset utf-8;
location /
include fastcgi_params;
fastcgi_param PATH_INFO $fastcgi_script_name;
fastcgi_param SCRIPT_NAME "";
fastcgi_pass 127.0.0.1:8008;//设置fastcgi应用监听端口(注意这里的端口和上面的listen的8000端口要不一样,否则会报地址已占用的错)
}
e. 停止Nginx
sudo nginx -s quit
安装FastCGI
sudo pip install flup
如下为简单Flask代码示例
#!/usr/bin/python
from flup.server.fcgi import WSGIServer
from flask import Flask, request
from bson.objectid import ObjectId
import Encrypt
def myapp(environ, start_response):
start_response(‘200 OK‘, [(‘Content-Type‘, ‘text/plain‘)])
def myapp(environ, start_response):
start_response(‘200 OK‘, [(‘Content-Type‘, ‘text/plain‘)])
(rquest_method,data) = get_environ(environ)
if rquest_method==‘GET‘:
return ‘Get QueryStr:‘+data
else:
return ‘POST RequestData‘+data
def get_environ(environ):
rquest_method = environ["REQUEST_METHOD"]
data=‘‘
if rquest_method==‘GET‘:
data=environ["QUERY_STRING"]
else:
data = environ["wsgi.input"].read()
return (rquest_method,data)
if __name__ == ‘__main__‘:
WSGIServer(myapp, bindAddress=(‘127.0.0.1‘,8008)).run()
//这里的端口必须和上面所配置的端口相同,从而实现监听
启动Nginx服务器
运行Python应用
到这里我们的本地服务器和Python应用就部署完成了,局域网内的任何浏览器或客户端都可以访问。效果如下:
版权声明:本文为博主原创文章,未经博主允许不得转载。
Python应用攻略 ---- Mac环境下Flask+Nginx+FastCGI实现Python应用部署
标签:python nginx mac fastcgi flask
原文地址:http://blog.csdn.net/l964968324/article/details/47092775