2011-11-28 64 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处理程序;然而我强烈建议反对此并推荐侦听器/查询方法。

相关问题