上一涨讲解了如何使用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