Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-core/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Django url来自文件中的大量单词列表_Django - Fatal编程技术网

Django 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() 为了获得最佳性能

我有一个60000字的文件,我需要的url是有效的,只有当它包含在该文件中的任何字

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:
    ...