python的django写页面上传文件以及遇到的问题

打印 上一主题 下一主题

主题 940|帖子 940|积分 2820

首先上结构
mynode -> app5 -> urls.py & views.py
            | -> templates -> 5 -> upload.html
            | -> mynode -> urls.py
            | -> media
按照顺序,先上app5/urls.py
  1. from django.urls import path<br>from app5 import views as v5<br><br>app_name = 'app5'<br><br>urlpatterns = [<br>    path('upload_file/', v5.upload_file, name = 'upload_file'),<br>    path('show_upload/', v5.show_upload, name = 'show_upload'),<br>]
复制代码
path('upload_file/', v5.upload_file, name = 'upload_file'),指定upload_file跳转功能
    path('show_upload/', v5.show_upload, name = 'show_upload'),指定show_upload跳转功能
接着是app5/view.py
 
  1. from django.shortcuts import render<br>from django.http import HttpResponse
  2. import os
  3. def show_upload(request):
  4.   return render(request, '5/upload.html')
  5. def upload_file(request):if request.method == 'POST':
  6.     get_file = request.FILES.get('myfile',None)
  7.     if get_file:
  8.       path = 'media/uploads'
  9.       if not os.path.exists(path):
  10.         os.makedirs(path)
  11.       dest = open(os.path.join(path,get_file.name),'wb+')
  12.       for chunk in get_file:
  13.         dest.write(chunk)
  14.       dest.close()
  15.       return  HttpResponse('上传文件成功!')
  16.     else:
  17.       return HttpResponse('没有上传文件!')
复制代码
 
首先写了一个show_upload方法,跳转到初始页面
接下来是upload_file方法,首先判断请求方式是否是POST,接下来获取上传文件,指定上传路径,如果路径不存在就创建一个,把上传文件内容写到指定路径下
再来是templates/5/upload.html
 
  1. //这个是错误的<br><form enctype="multipart/form-data" action="{% url 'app5:upload_file' %}" method="post">
  2.     {% csrf_token %}
  3.     <input type="file" name="myfile" />
  4.     <br/>
  5.     <input type="submit" value="upload_file" />
  6. </form><br>
复制代码
  1. //这个是错误的
复制代码
 
指定了一个action,{% url 'app5:upload_file' %},app5是app5/urls.py中的app_name,upload_file则是要跳转连接,同时因为url已经指定这个连接要跳转的views中的功能,因此这个就是app5/view.py里面的upload_file方法
这个页面展示是正常的,但是在写好功能以后,无论怎么点提交,都没法跳转到upload_file功能

仔细看表单的名称
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

去皮卡多

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表