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             width: 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

 

 

posted on   Arts&Crafts  阅读(615)  评论(0编辑  收藏  举报

编辑推荐:
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
历史上的今天:
2012-12-18 MongoDB快速入门——SQL与MongoDB的对照

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5
点击右上角即可分享
微信分享提示