2011-11-28 31 views
0

目標:在加載頁面後立即顯示倒計時「時鐘」。 (FWIW,它旨在生成即將截止的視覺響亮而清楚地提醒)Django視圖在「shell」中工作,但不在導入到現有視圖時

平臺:視窗

countdown.py

import datetime, os, time 
from Tkinter import * 
from sys import exit 


root = Tk() 
time = "" 
clock = Label(root, font=('times', 48, 'bold'), bg="cyan") 
clock.pack(fill=BOTH, expand=1) 


def getTime(): 
    - finish = datetime.datetime(2011, 12, 4, 14, 45, 14, 281000) 
    - now = datetime.datetime.now() 
    - diff = finish - now 
    - minutes, seconds = divmod(diff.seconds, 60) 
    - hours, minutes = divmod(minutes, 60) 
    - string = "%d days %d hours %d minutes %d seconds" % (diff.days,hours,minutes,seconds) 
    - clock.config(text=string) 
    - clock.after(200, getTime) 

getTime() 
root.mainloop() 

urls.py:

from django.conf.urls.defaults import * 
from django.conf import settings 
from django.contrib import admin 
admin.autodiscover() 

urlpatterns = patterns('', 
- url(r'^$', 'views.upn', name='site-homepage'), 
- (r'^ASSETS/(?P<path>.*)$', 'django.views.static.serve', 
-  {'document_root': settings.MEDIA_ROOT}), 
- (r'^admin/', include(admin.site.urls)), 
- (r'^upn/$', 'views.upn'), 
) 

views.py:

from django.template.loader import get_template 
from django.template import Context 
from django.http import HttpResponse 
from django.shortcuts import render_to_response 
import urllib2 
import countdown 

def upn(request): 
-return render_to_response("main.html") 

main.html中

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 

<html> 

<head> 

<title>Main Page</title> 

<link rel="stylesheet" type="text/css" href="/ASSETS/CSS/UPN.css"/> 

</head> 

<body> 

<div class="maintext"> 
<div> 


     <img class="MAINimg1" height="400" width="323" src="http://12345.jpg" border="0"> 

     <img class="MAINimg2" height="350" width="550" src="http://6789.jpg" border="0" border="0" > 

    </div> 



</body> 

</html> 

如果我在一個窗口中運行「蟒蛇manage.py殼」命令提示符,然後「進口countdown.py」,我得到期望的結果。

但是,如果我將其納入了views.py「進口倒計時」,我得到以下(回溯):

回溯:

File "D:\Python26\lib\site-packages\django\core\handlers\base.py" in get_response 
    83.      request.path_info) 

    File "D:\Python26\lib\site-packages\django\core\urlresolvers.py" in resolve 

    218.      sub_match = pattern.resolve(new_path) 

File "D:\Python26\lib\site-packages\django\core\urlresolvers.py" in resolve 

    125.    return self.callback, args, kwargs 

File "D:\Python26\lib\site-packages\django\core\urlresolvers.py" in _get_callback 

    137.    raise ViewDoesNotExist, "Tried %s in module %s. Error was: %s" % 
(func_name, mod_name, str(e)) 


Exception Type: ViewDoesNotExist at/

Exception Value: Tried upn in module views. Error was: 'module' object has no attribute 'argv' 

錯誤:

* _get_callback中的文件「D:\ Python26 \ lib \ site-packages \ django \ core \ urlresolvers.py」 137.提升ViewDoesNotExist,「在模塊%s中嘗試了%s。錯誤是:%的」%(FUNC_NAME,mod_name,STR(E))*

似乎是關鍵,但我無法解釋這個錯誤足夠準確地做出必要的修正提前

感謝。對於任何英特爾可以提供。

回答

0

的問題似乎是與你的URLconf,它找不到整個視圖。

0

如果您從您的代碼註釋掉root.mainloop(),錯誤就會消失,但這不是去解決你在桌面上顯示窗口的問題。

爲此,您需要在桌面上安裝一個程序(也許程序countdown.py)監聽來自Web服務的信號,然後啓動計時器。

如果必須的請求啓動此代碼,你需要做的地方在你的應用程序,傳統的argc/argv的存在,其中的WSGI處理程序;然而我強烈建議反對此並推薦偵聽器/查詢方法。

相關問題