nginx+uwsgi+django

       上一涨讲解了如何使用nginx+uwsgi部署wsgi application

  其实django配置方式和 application都一样,因为如果我们对application进行扩展就是一个WSGI framework

       我们使用

django-admin.py startproject mysite

    创建一个简单的 django app命名为mysite

 然后我们在mysite中创建一个 static 目录,主要用于放置mysite的静态文件。因为我们不打算让Djando管理静态文件,把管理静态文件的任务交给nginx,因为那是它的强项

   我们咋 static 目录下创建一个 js 目录 和一个 time.html ,我们把  jquery.js 放到 js目录下

   time.html

 1 <html>
 2 <head>
 3     <title>time
 4     </title>
 5     <script type="text/javascript" src="js/jquery-1.7.min.js"></script>
 6     <script type="text/javascript">
 7         $(function () {
 8             $(':button').click(function () {
 9                 $.ajax({
10                     url: '/query_time',
11                     dataType: 'text',
12                     success: function (time) {
13                         $('[name="time"]').val(time)
14                     }
15                 });
16             });
17         });
18     </script>
19 </head>
20 <body>
21     <table style="margin: 0 auto">
22         <tr>
23             <td>
24                 <input type="text" name="time" disabled="disabled" /></td>
25         </tr>
26         <tr>
27             <td>
28                 <input type="button" value="Query Time" /></td>
29         </tr>
30     </table>
31 </body>
32 </html>

 主页 home.html

 1 <html>
 2 <head>
 3     <title>home</title>
 4     <style type="text/css">
 5         div {
 6              200px;
 7             height: 100px;
 8             background-color: aquamarine;
 9             font-family: 'Arial Black', Gadget, sans-serif;
10             margin: 0 auto;
11             text-align: center;
12             font-size: 20px;
13         }
14     </style>
15 </head>
16 
17 <body>
18     <div>
19         Home Page
20     </div>
21 </body>
22 </html>

  我们在 mysite中的创建一个 views.py 文件:

 1 from django.shortcuts import HttpResponse
 2 import datetime
 3  
 4 static_path = os.path.join(os.path.dirname(sys.argv[0]).replace('\', '/'), 'static')
 5 
 6 def home(request):
 7     try:
 8         home_file = open(static_path + '/home.html')
 9     except IOError:
10         return Http404()
11     html = home_file.read()
12     home_file.close()
13     return HttpResponse(html)
14 
15 def query_time(request):
16     now = datetime.datetime.now().strftime("%Y-%m-%d %H:%M")
17     return HttpResponse(now)

urls.py代码:

1 from django.conf.urls import patterns, url
2 from mysite.views     import home, query_time
3 
4 urlpatterns = patterns('',
5                        url(r'^$', home),
6                        url(r'^query_time/$', query_time),
7                     )

  nginx配置

  location /     {
         #wsgi config
         include       uwsgi_params;
         uwsgi_pass    localhost:9000;
        }
  location ~* ^.+.(ico|gif|jpg|jpeg|png|html|htm)$ {  
            root         /home/artscrafts/mysite/static;  
            access_log   off;
        }  

   location ~* ^.+.(css|js|txt|xml|swf|wav)$ {  
            root         /home/artscrafts/mysite/static;  
            access_log   off;
        }

   这次我们使用 uwsgi 的.ini文件启动

  mysite.ini

1 [uwsgi]
2 chdir=/home/artscrafts/mysite
3 module=mysite.wsgi:application
4 env DJANGO_SETTINGS_MODULE=mysite.settings
5 socket=127.0.0.1:9000
6 processes=5
7 max-requests=5000
8 daemonize=/var/log/uwsgi/mysite.log

  部署

sudo uwsgi mysite.ini

 

访问 localhost/time.html

 

原文地址:https://www.cnblogs.com/ArtsCrafts/p/uwsgi_2.html