Python 下载文件页的NoReverseMatch错误

Python 下载文件页的NoReverseMatch错误,python,django,django-views,django-urls,django-url-reverse,Python,Django,Django Views,Django Urls,Django Url Reverse,我正在开发django web应用程序。在这里,web应用程序在提交表单时生成一个数据帧。此数据帧存储在根目录中。我有另一个视图,用于下载生成的csv文件。但是当我重定向到下载页面时,我得到一个无反向匹配错误 这是到目前为止我的代码 def randomfilename(stringLength=8): lettersAndDigits = string.ascii_letters + string.digits return ''.join(random.choice(lett

我正在开发django web应用程序。在这里,web应用程序在提交表单时生成一个数据帧。此数据帧存储在根目录中。我有另一个视图,用于下载生成的csv文件。但是当我重定向到下载页面时,我得到一个无反向匹配错误

这是到目前为止我的代码

def randomfilename(stringLength=8):
    lettersAndDigits = string.ascii_letters + string.digits
    return ''.join(random.choice(lettersAndDigits) for i in range(stringLength))

def generate_dataframe(request):
    if request.method == 'POST':
        ...
        df = pd.DataFrame(columns=cols)
        df['title'] = title_lst
        df['link'] = product_links[:1]

        fn = randomfilename()
        df.to_csv('./'+fn+'.csv')
        return redirect("download_file", filename = fn)

def download_file(request, filename):
    if request.method == 'POST':

        file_path = './'+filename

        file = open(file_path, 'r')
        mime_type, _ = mimetypes.guess_type(file_path)
        response = HttpResponse(file, content_type=mime_type)
        response['Content-Disposition'] = "attachment; filename=%s" % filename

        return response
项目URL.py

urlpatterns = [
    path('admin/', admin.site.urls),
    path('', include('scraper.urls')),
]
scraper.py

urlpatterns = [
    path('generate', views.generate_dataframe, name='generate_dataframe'),
    path('download/<filename>/', views.download_file, name='download_file'),
]
urlpatterns=[
路径('generate',views.generate_dataframe,name='generate_dataframe'),
路径('download/',views.download_file,name='download_file'),
]
我知道我把URL弄乱了。但我不知道如何纠正这个问题。请帮帮我。提前感谢。

试试这个:

在你看来

from django.urls import reverse

def generate_dataframe(request):
    ...
return redirect(reverse('download_file', kwargs={'filename': fn}))
在您的URL.py中:

urlpatterns = [
    ...
    path('download/<str:filename>/', views.download_file, name='download_file'),
]

对于“下载\u文件”,我仍然会遇到此错误
Reverse,未找到任何参数。尝试了1个模式:[“下载/(?P[^/]+)/$”]
您的URL.py是在基础应用程序中还是在其他应用程序中?项目仅包含项目文件夹和应用程序文件夹。项目中只有一个应用程序。应用程序名为scraper。问题中的URL位于应用程序文件夹中。我还编辑了这个问题以添加项目URL。请查看您的URL.py在URLSpatterns
app\u name='scraper'
之前添加一个变量。然后在您的视图中执行:
returnredirect(反向('scraper:download_file',kwargs={'filename':fn}))
我试过了。这没有帮助。我为应用程序URL添加了另一个路径,如
路径('download/',views.download\u file,name='download\u file'),
,这样当它是
获取请求时,显示网页,当按下按钮时,下载文件。现在,我得到一个不同的错误
download\u file()缺少一个必需的位置参数:“filename”
。我现在做的对吗?
{% url 'download_file' filename %}