Django url来自文件中的大量单词列表
我有一个60000字的文件,我需要的url是有效的,只有当它包含在该文件中的任何字Django url来自文件中的大量单词列表,django,Django,我有一个60000字的文件,我需要的url是有效的,只有当它包含在该文件中的任何字 url(r'^site/KEYWORD/$', 'mysite.views.home') 所以基本上我需要关键字是该文件中存在的单词之一 我知道我们可以将管道用于多个单词,但列表太大,无法做到这一点不要在URL中这样做;在视图中执行此操作 def my_view(request, word): if word not in WORDS: raise Http404() 为了获得最佳性能
url(r'^site/KEYWORD/$', 'mysite.views.home')
所以基本上我需要关键字是该文件中存在的单词之一
我知道我们可以将管道用于多个单词,但列表太大,无法做到这一点不要在URL中这样做;在视图中执行此操作
def my_view(request, word):
if word not in WORDS:
raise Http404()
为了获得最佳性能,单词应该是在模块级别定义的集合。首先,将
关键字设置为URL参数:
url(r'^site/(?P<keyword>\w+)/$', 'mysite.views.home')
但这并不是一个好方法,因为每次请求时,您都会打开并读取整个文件。解决方案是将这些字存储在一个常量模块级变量中,并读取文件一次
像这样的事情:
def home(request, keyword=None):
if keyword in open('./words.txt').read():
...
raise Http404()
WORDS = open('./words.txt').read()
在你看来:
if keyword in WORDS:
...