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

首先上结构

mynode -> app5 -> urls.py & views.py

            | -> templates -> 5 -> upload.html

            | -> mynode -> urls.py

            | -> media

按照顺序,先上app5/urls.py

from django.urls import path
from app5 import views as v5

app_name = 'app5'

urlpatterns = [
    path('upload_file/', v5.upload_file, name = 'upload_file'),
    path('show_upload/', v5.show_upload, name = 'show_upload'),
]

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

 

from django.shortcuts import render
from
django.http import HttpResponse import os def show_upload(request): return render(request, '5/upload.html') def upload_file(request):
if request.method == 'POST': get_file = request.FILES.get('myfile',None) if get_file: path = 'media/uploads' if not os.path.exists(path): os.makedirs(path) dest = open(os.path.join(path,get_file.name),'wb+') for chunk in get_file: dest.write(chunk) dest.close() return HttpResponse('上传文件成功!') else: return HttpResponse('没有上传文件!')

 

首先写了一个show_upload方法,跳转到初始页面

接下来是upload_file方法,首先判断请求方式是否是POST,接下来获取上传文件,指定上传路径,如果路径不存在就创建一个,把上传文件内容写到指定路径下

再来是templates/5/upload.html

 

<!--<from enctype="multipart/form-data" action="{% url 'app5:upload_file' %}" method="post">--> //这个是错误的
<
form enctype="multipart/form-data" action="{% url 'app5:upload_file' %}" method="post"> {% csrf_token %} <input type="file" name="myfile" /> <br/> <input type="submit" value="upload_file" /> </form>
<!--</from>--> //这个是错误的

 

指定了一个action,{% url 'app5:upload_file' %},app5是app5/urls.py中的app_name,upload_file则是要跳转连接,同时因为url已经指定这个连接要跳转的views中的功能,因此这个就是app5/view.py里面的upload_file方法

这个页面展示是正常的,但是在写好功能以后,无论怎么点提交,都没法跳转到upload_file功能

仔细看表单的名称<from,这个坑我踩了好久,后来仔细看了下,应该是form,改了之后就好使了

最后是mynode/urls.py

from django.contrib import admin
from
django.urls import path,include urlpatterns = [ path('admin/', admin.site.urls), path('app5/', include('app5.urls')), ]

指定app5跳转到app5/urls.py

最后打开浏览器,输入链接http://localhost:8000/app5/show_upload/

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

选择要上传的文件,点击upload_file按钮

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

这里跳转到upload_file路径,并且显示上传文件成功

 

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:python的django写页面上传文件以及遇到的问题 - Python技术站

(0)
上一篇 2023年4月2日
下一篇 2023年4月2日

相关文章

  • 已安装python在cmd命令窗口执行python提示“’python’ 不是内部或外部命令,也不是可运行的程序”

    我的博客 这个教程只适合windows,linux不适用,不过话说回来了,linux都是自带python的,所以已经预置好了,只要打python就行了,根本不用加环境变量 言归正传 写了好长时间的python,最近发现个很基础的问题,就是很多同学已经安装python了,但是不知道怎么运行,找了教程,也是在cmd命令窗口执行python [python脚本]就…

    2023年4月2日
    00
  • python接收微信消息报’HTMLParser’ object has no attribute ‘unescape’错误

    我的博客 一直有个想法,想要弄个微信机器人,然而出师不利,刚开始就碰壁了 先上代码,这个是用来接收消息的,是个测试脚本 #!/usr/bin/python # coding: utf-8 import itchat def write_infomation(text_value): print(text_value) @itchat.msg_register…

    2023年4月2日
    00
  • django 报错 ‘set’ object is not reversible 解决

    我的博客 这个问题在网上随便一搜就有解决办法,说是把urls.py里面的urlpatterns = 这部分的{}改成[]就可以了,想想也对,毕竟里面是个list也不是个dict 先说下我的project内容 我用的命令是 python manage.py startproject myweb python manage.py startapp app1 py…

    Python开发 2023年4月2日
    00
  • 用python去除SQL中的注释

    我的博客在看到这个标题时候肯定有人会想,我写SQL直接在数据库工具上执行就行了啊,工具会自动识别注释的,就是不用工具,把SQL写到存储过程里,数据库也会识别注释不执行的,干嘛非要去掉,费力不讨好。 其实是最近在做一个项目,需要在行云库里执行SQL,并且SQL是写在脚本上的,通过JDBC调用,众所周知,SQL的注释很随意,甚至有什么保佑不出bug这种,那么执行…

    2023年4月2日
    00
  • python写脚本测试执行为什么要写if __name__ == ‘__main__’

    我的博客 在写python脚本的时候,例如,我写一个test1.py def test(n): print(n) if __name__ == ‘__main__’: n = 1 test(1) 接下来打开cmd命令窗口,执行命令 python test.py 结果是把1打印出来 这时候就会有同学有疑问了,我直接写不行么,在test1.py的同一个目录下创建…

    2023年4月2日
    00
  • python的日期处理

    我的博客 俗话说,工欲善其事必先利其器,所以在使用日期前要先对日期进行处理,所以时间戳和字符串的来回来去转换这个事肯定是要搞的 这次的函数有一个?有两个?有三个?有四个!上代码! 哈哈,像不像直播带货 本次用到3个内置包 import reimport timeimport calendar 第一个,日期转时间戳 # 日期字符串转时间戳 def str_ti…

    Python开发 2023年4月2日
    00
合作推广
合作推广
分享本页
返回顶部