0

这是我的views.py 文件代码(在我的django 应用程序“搜索”中):

#!/usr/bin/python 

from dango.http import HttpResponse
from skey import find_root_tags, count, sorting_list
from search.models Keywords

def front_page(request):

    if request.method == 'POST' :
        str1 = request.POST['word']
        fo = open("xml.txt","r")

        for i in range(count.__len__()):

            file = fo.readline()
            file = file.rstrip('\n')
            find_root_tags(file,str1,i)

            list.append((file,count[i]))

        sorting_list(list)

        for name, count in list:
            s = Keywords(file_name=name,frequency_count=count)
            s.save()

            fo.close()
        return HttpResponseRedirect('/results/')

    else :
        str1 = ''
        list = []
        template = loader.get_tamplate('search/search.html')
        response = template.render()
        return HttpResponse(response)


def results(request):

    list1 = Keywords.objects.all()
    t = loader.get_template('search/results.html')
    c = Context({'list1':list1,
    })

    return HttpResponse(t.render(c))

1)我想知道,因为我在views.py中导入'skey'文件,所以我需要在搜索应用程序目录中保留这个'skey.py','xml.txt'和10个xml文档吗?

2)由于我在发布后重定向到“结果”视图,所以,我如何在 urls.py 中提及它,即在 "urlpatterns" 中。

3)那么我需要在“def front_page(request):”中提及“上下文”吗?如果没有它,这个视图定义是否可以正常工作,因为根据我的说法,我们不必在每个def中使用上下文的意见。

Django对我来说是新手,我没有任何动手经验。所以,

请帮忙。

4

1 回答 1

1
  1. 将 'skey' 保存在同一个应用程序目录中。将 xml 文档保存在 app 目录下虽然不好但可以接受,更好的选择是将它们放在"/var/www/your-site/xml-data"/之类的位置"d:/your-site/xml-docs/"并通过绝对路径访问它们

  2. 看下面的代码

    
    from django.conf.urls import patterns, include, url    
    from django.contrib import admin
    admin.autodiscover()    
    urlpatterns = patterns('',
        url(r'^search/$','search.views.front_page'),
        url(r'^results/$','search.views.results'),
        url(r'^admin/', include(admin.site.urls)),
    )
    
  3. 正常使用是这样的:(get_template和render会自动调用)

    from django.shortcuts import render_to_response as rr
    
    def home(req):   
        # do some work here
        return rr('your template file',
            { ... }, # your parameters
            context_instance = RequestContext(req))
    
于 2012-07-04T07:04:05.017 回答