我的网站生成json文件,并使用用户指定的名称保存它们:test.json
我无法立即访问它,所以我认为我必须编写一个URL模式并查看该文件。
我想要类似于此的东西:
url(r'^(?P<Controller>).json$', views.loadjson, name='loadjson')
答案 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
)