码迷,mamicode.com
首页 > 编程语言 > 详细

Python应用攻略 ---- Mac环境下Flask+Nginx+FastCGI实现Python应用部署

时间:2015-07-28 00:56:08      阅读:229      评论:0      收藏:0      [点我收藏+]

标签:python   nginx   mac   fastcgi   flask   

对于一个iOS开发者来说,会写后台应用并非必要的技能,然而掌握一门后台语言却无疑可以锦上添花,不仅可以对前后台架构有更加全面的了解,同时在实际开发工作中也可以自己写一些后台应用。

flask框架本身集成了一个简单的服务器,可以在本机调用,然而在这种情况下要调用Python应用接口就只能使用模拟器调试,若想要使用真机调试,我们还是需要正儿八经地部署服务器。

在这里,我们介绍一种Nginx搭配FastCGI实现Mac环境下的本地服务器部署。

Nginx配置

  • a. 安装HomeBrew
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配置

  • 安装FastCGI

     sudo pip install flup
    

Python应用编写

如下为简单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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!