在Django中,如何编写json文件的url模式?

时间:2017-07-13 17:38:07

标签: django django-views django-urls

我的网站生成json文件,并使用用户指定的名称保存它们:test.json

我无法立即访问它,所以我认为我必须编写一个URL模式并查看该文件。

我想要类似于此的东西:

url(r'^(?P<Controller>).json$', views.loadjson, name='loadjson')

1 个答案:

答案 0 :(得分:0)

如果您需要提供静态JSON文件,那么通过Django这样做并不是最好的方法 - 如果是这种情况使用像Nginx这样的东西。

如果你不想让Django生成这些文件和/或例如在它之前的身份验证机制然后可以用于Django。

问题:

# urls.py
url(r'^(?P<json_file>[\w]+).json$', views.loadjson, name='loadjson')

您似乎忘记了[\w]+,我认为这是适合您需求的正确模式 将使用WSGIRequest实例和json_file参数(来自您的url模式)调用view函数,从那里您应该可以使用该文件执行任何您喜欢的操作。最好以application/json内容类型的形式返回,因为它们应该是JSON。

# views.py
from django.http import HttpResponse

def loadjson(request, json_file):
    # open, generate, fetch the json file
    # for e.g.:
    json_content = read_file(json_file)
    return HttpResponse(
        json_content,
        content_type='application/json',
        status=200
    )