与django cms中的views.py文件相关的查询

时间:2012-07-04 06:54:43

标签: python linux django-views ubuntu-10.04 django-urls

这是我的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):”中提及“context”?如果没有它,这个视图定义是否正常工作因为根据我的说法,我们不必使用上下文在每一个观点中。

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

请帮忙。

1 个答案:

答案 0 :(得分:1)

  1. 将'skey'保存在同一个app目录中。将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))