python - Django前台url未能正确访问方法求助?
问题描述
大家好,小弟初学django,现在想学着做一个下载功能,前台html设置超链接,通过后台访问方法获取到文件名并下载。代码如下:前台:(比较简单,只是一个table里面套带超链接的字)
URL配置:
urlpatterns = [ url(r’^admin/’, admin.site.urls), url(r’^register/’,views.userRigister,name=’register’), url(r’^register/(.*)/$’,views.file_download,name=’download’),]
VIEW方法:
def userRigister(req):status=’welcome’#js alert出信息return render(req, ’register.html’, {’status’:json.dumps(status)})def file_download(request,filename): print(filename) def file_iterator(file_name, chunk_size=1024):with open(file_name) as f: while True:c = f.read(chunk_size)if c: yield celse: break if os.path.exists(’software/’ + filename):the_file_name = filenameresponse = StreamingHttpResponse(file_iterator(the_file_name))return response else:return HttpResponse(’error!no such file!’)
小弟的目的是正常访问同一个页面时,选择可下载的浏览器,点击超链接按钮后,访问file_download方法并下载对应浏览器。但是目前无法访问到file_download方法,恳请各位大神指点。谢谢了
问题解答
回答1:Django匹配url的时候是在url列表中从上往下依次匹配能被^register/(.*)/$匹配的一定能被上面的^register/匹配所以就出现了^register/(.*)/$永远匹配不到的情况解决方法很简单,这两个调个顺序就好
url(r’^admin/’, admin.site.urls),url(r’^register/(.*)/$’,views.file_download,name=’download’),url(r’^register/’,views.userRigister,name=’register’),
在使用Django的url解析功能的时候,要记住越详细的url要越往前放,越“模糊”的url要越靠后。
相关文章:
1. Java中main方法里面的参数一定要是String []args吗?2. docker绑定了nginx端口 外部访问不到3. html5 - 目前 公司App 嵌入H5页面 做个 手机支付功能 没有做过 所以 请求各位有经验的 给个思路4. javascript - node.js中stat() access() open() readFile()都能判断文件是否存在?5. CSS3可否做出这个效果?6. mysql - sql 左连接结果union右连接结果,导致重复性计算怎么解决?7. css - 如何讓圖片像雲一樣的行為?8. font-family - 我引入CSS3自定义字体没有效果?9. javascript - js 多维数组的问题10. node.js - Nodejs微信开发,视频上传成功,但是不返回给用户
![Java中main方法里面的参数一定要是String []args吗?](http://www.haobala.com/attached/image/12.jpg)
网公网安备