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 - ehcache緩存用的是虛擬機內存么?2. javascript - JS如何取對稱范圍的隨機數?3. 數據庫 - mysql如何處理數據變化中的事務?4. 關于docker下的nginx壓力測試5. java - mongodb分片集群下,count和聚合統計問題6. javascript - 有什么兼容性比較好的辦法來判斷瀏覽器窗口的類型?7. android - java 泛型不支持數組,那么RxJava的Map集合有什么方便的手段可以定義獲得一串共同父類集合數據呢?8. dockerfile - 我用docker build的時候出現下邊問題 麻煩幫我看一下9. java - 自己制作一個視頻播放器,遇到問題,用的是內置surfaceview類,具體看代碼!10. 服務器端 - 采用nginx做web服務器,C++開發應用程序 出現拒絕連接請求?
