2010-09-19 134 views
3

是否可以配置Django開發服務器的輸出以顯示發出請求的客戶端的IP地址?配置Django開發服務器輸出

+0

這樣的輸出線是這樣的: [19 /月/ 2010 11:49 :46] 192.168.1.11 0「GET /static/media/css/site.css HTTP/1.1」304 0 – mitchf 2010-09-19 21:21:18

+0

而不是: [19/Sep/2010 11:49:46]「GET /static/media/css/site.css HTTP /1.1「304 0 – mitchf 2010-09-19 21:22:16

回答

3

這是在我們的「標準模塊」到新的Django版本的列表中。對於Django的1.2.1,在Django /核心/服務器/ basehttp.py,線614,變化:

msg = "[%s] %s\n" % (self.log_date_time_string(), format % args) 

msg = "[%s] %s %s\n" % (self.log_date_time_string(), 
         self.client_address[0], format % args) 
+0

謝謝彼得!我只是將它添加到我的Django標準mods列表中。我們必須對代碼進行修改才能獲得它,但正如Django開發人員所說的那樣,他們創建框架而不是服務器。 – mitchf 2010-09-20 03:24:11

+0

你想分享的任何其他「標準MODS」?我很想看到你的名單! – mitchf 2010-09-20 04:25:01

+0

我翻看了我們所擁有的內容,並將最有可能對您有用的內容放在PasteBin上。 http://pastebin.com/bjpS1mgg。除了我上面展示的內容外,還有一個新方法''cache.get_or_eval()'簡化了檢查/設置緩存的操作,另一個方法修復了模板變量解析方法,從而得到一個簡單的值。 {{something}},如果它實際上是可調用的(),則會被調用。我們使用圍繞重量級DB調用的curried函數並將其傳遞到上下文中。這兩個修復程序都是MonkeyPatches,並且會被一些人所詬病。咩。 – 2010-09-20 16:27:15

2

其他答案我已經向我建議:

  1. 考慮Gunicorn作爲一個開發服務器:http://gunicorn.org/(orginNell)
  2. 考慮使用basehttp.py類繼承來創建一個新的管理命令,並避免與合作搞亂重碼(orginNell)
  3. 使用一個真正的服務器(哈羅)
  4. 寫一些中間件來記錄到文件(哈羅)
  5. 考慮更換內置的服務器Django的devserver:http://github.com/dcramer/django-devserver(mikeshantz)
  6. 我喜歡的CherryPy和Django:http://www.cherrypy.org/(約翰·M)
  7. 切諾基也很好:http://www.cherokee-project.com/(約翰·M)
+0

哇!我想我比你可能做的更多的是你的答案。謝謝! – 2010-09-21 02:02:54