• uWSGI其二:安装与简单测试

    将uwsgi与Django连接起来
    服务器君一共花费 48.156 ms 进行了 2 次数据库查询,努力地为您提供了这个页面。
    广告很萌的

    安装

    uWSGI 的安装很简单:

    pip install uwsgi
    

    现在我们试下将 Django 跑起来。我们先在 virtualenv 创建一个 Django Project:

    [root@nowamagic ~]# cd nowamagic_venv
    [root@nowamagic nowamagic_venv]# source bin/activate
    (nowamagic_venv)[root@nowamagic nowamagic_venv]# django-admin.py startproject nowamagic_pj
    

    virtualenv 的路径与目录文件如下:

    Django Project 的路径与目录文件如下:

    测试uwsgi

    在你的服务器上写一个test.py:

    # test.py
    def application(env, start_response):
        start_response('200 OK', [('Content-Type','text/html')])
        return "Hello World"
    

    我的 test.py 的路径是 /root/nowamagic_venv/nowamagic_pj/test.py,执行以下命令:

    [root@nowamagic ~]# cd nowamagic_venv
    [root@nowamagic nowamagic_venv]# source bin/activate
    (nowamagic_venv)[root@nowamagic nowamagic_venv]# uwsgi --http :8001 --wsgi-file /root/nowamagic_venv/nowamagic_pj/test.py
    

    访问网页 http://115.28.0.89:8001/,OK,显示 Hello World,说明 uwsgi 安装成功。

    测试你的 Django 项目

    前面我们用 django-admin.py startproject nowamagic_pj 创建了一个项目,现在我们用 Django 自带的 Web 服务器看看我们的项目有没出问题。还是进入我们虚拟环境:

    [root@nowamagic ~]# cd nowamagic_venv
    [root@nowamagic nowamagic_venv]# source bin/activate
    (nowamagic_venv)[root@nowamagic nowamagic_venv]# python2.7 /root/nowamagic_venv/nowamagic_pj/manage.py runserver 0.0.0.0:8002
    

    执行这个命令报错:No module named django.core.management,原因应该是装了多个版本的Python导致的。命令指定文件路径就行,丑是丑些了:

    (nowamagic_venv)[root@nowamagic nowamagic_venv]# /usr/local/bin/python2.7 /root/nowamagic_venv/nowamagic_pj/manage.py runserver 0.0.0.0:8002
    

    OK,启动 Django 自带的服务器了,我们再访问 http://115.28.0.89:8002/,成功显示:

    说明 Djanggo 项目也没问题。

    连接Django和uwsgi

    最后一步了,我们要把uwsgi与Django连接起来。

    编写django_wsgi.py文件,将其放在与文件manage.py同一个目录下。我的放在 /root/nowamagic_venv/nowamagic_pj/ 下:

    #!/usr/bin/env python
    # coding: utf-8
    
    import os
    import sys
    
    # 将系统的编码设置为UTF8
    reload(sys)
    sys.setdefaultencoding('utf8')
    
    os.environ.setdefault("DJANGO_SETTINGS_MODULE", "nowamagic_pj.settings")
    
    from django.core.handlers.wsgi import WSGIHandler
    application = WSGIHandler()
    
    • 注意不要直接 copy,有个地方要改:注意到语句os.environ.setdefault。比如我的项目为nowamagic_pj,则语句应该是 os.environ.setdefault("DJANGO_SETTINGS_MODULE", "nowamagic_pj.settings")

    OK,进入虚拟环境执行指令:

    [root@nowamagic ~]# cd nowamagic_venv
    [root@nowamagic nowamagic_venv]# source bin/activate
    (nowamagic_venv)[root@nowamagic nowamagic_venv]# uwsgi --http :8000 --chdir /root/nowamagic_venv/nowamagic_pj/ --module django_wsgi
    

    成功显示 Django It Works 页面。

    这样,你就可以在浏览器中访问你的Django程序了。所有的请求都是经过uwsgi传递给Django程序的。

    这里我们介绍了如何把uwsgi与Django连接起来,在下一篇将继续介绍如何将uwsgi与Nginx连接。

更多 推荐条目

Welcome to NowaMagic Academy!

现代魔法 推荐于 2013-02-27 10:23   

本章最新发布
随机专题
  1. [智力开发与知识管理] 整体性学习策略 9 个条目
  2. [移动开发] 从代码角度去认识 Activity 4 个条目
  3. [移动开发] Activity 初步知识 2 个条目
  4. [移动开发] 从代码角度去认识 Thread 9 个条目
  5. [软件工程与项目管理] 浏览器的CSS解析 7 个条目
  6. [JavaScript程序设计] Web实时通信技术名词解析 5 个条目
  7. [Python程序设计] Python数据类型 11 个条目
  8. [PHP程序设计] 命令式编程范式 6 个条目
  9. [移动开发] Android属性系统Property 9 个条目
  10. [移动开发] 从代码角度去认识 Handler 4 个条目
  11. [PHP程序设计] CodeIgniter与PHP框架设计 5 个条目
  12. [数据结构] 散列表(哈希表) 13 个条目
窗口 -- [八点]