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 2013-12-18 16:06 Arts&Crafts 阅读(615) 评论(0) 编辑 收藏 举报
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .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的对照