当前位置: 首页 > news >正文

青岛专业制作网站的公司郑州市金水区建设局网站

青岛专业制作网站的公司,郑州市金水区建设局网站,单页面网站模板,网站建设公司软文在django中实现文件上传有三种方法可以实现#xff1a; 自己手动写使用Form组件使用ModelForm组件 其中使用ModelForm组件实现是最简单的。 1、自己手写 先写一个上传的页面 upload_file.html enctypemultipart/form-data 一定要加这个#xff0c;不然只会上传文件名…在django中实现文件上传有三种方法可以实现 自己手动写使用Form组件使用ModelForm组件 其中使用ModelForm组件实现是最简单的。 1、自己手写 先写一个上传的页面 upload_file.html enctypemultipart/form-data 一定要加这个不然只会上传文件名不会上传文件内容。 {% extends layout.html %}{% block content %}div classcontainerform methodpost enctypemultipart/form-data{% csrf_token %}input typetext nameusernameinput typefile nameavatarinput typesubmit value提交/form/div{% endblock %}在写一个视图函数 在这个视图函数中如果是get 请求就展示上传的页面如果是post 请求就将获取到的文件对象在项目跟目录创建一个相同的文件名保存起来。 from django.shortcuts import render, HttpResponsedef upload_list(request):if request.method GET:return render(request,upload_file.html)print(request.POST) # 请求体中的数据print(request.FILES) # 请求发过来的文件 {}file_object request.FILES.get(avatar)f open(file_object.name,modewb)for chunk in file_object.chunks():f.write(chunk)f.close()return HttpResponse(上传成功)简单的页面效果 2、使用Form组件 提交页面时 用户输入数据 文件输入不能为空报错 Form生成HTML标签 typefile表单的验证form.cleaned_data 获取数据 文件对象 将上传的图片保存到static目录并且在数据库保存文件存储的路径 models.py 中创建一个数据库 class Boss(models.Model):保存图片name models.CharField(verbose_name姓名,max_length32)age models.IntegerField(verbose_name年龄)img models.CharField(verbose_name图片,max_length128)视图函数 from django.shortcuts import render, HttpResponse from django import forms import os from app01 import modelsclass UpForm(forms.Form):name forms.CharField(label姓名)age forms.IntegerField(label年龄)img forms.FileField(label头像)def upload_form(request):if request.method GET:form UpForm()return render(request,upload_form.html,{form:form})form UpForm(datarequest.POST,filesrequest.FILES)if form.is_valid():# 1、读取图片内容写入文件夹中并获取文件的路径image_object form.cleaned_data.get(img)# 创建文件路径db_file_path os.path.join(static,img,image_object.name)file_path os.path.join(app01,db_file_path)f open(file_path,modewb)for chunk in image_object.chunks():f.write(chunk)f.close()# 2、 将图片文件路径写入到数据库models.Boss.objects.create(nameform.cleaned_data[name],age form.cleaned_data[age],img db_file_path,)return HttpResponse(上传成功)return render(request,upload_form.html,{form:form})upload_form.html 文件内容 {% extends layout.html %}{% block content %}div classcontainerdiv classpanel panel-defaultdiv classpanel-heading图片上传/divdiv classpanel-bodyform methodpost enctypemultipart/form-data novalidate{% csrf_token %}{% for field in form %}div classform-grouplabel {{ field.label }}/label{{ field }}span stylecolor:red{{ field.errors.0 }}/span/div{% endfor %}button typesubmit classbtn btn-primary提交/button/form/div/div/div {% endblock %}页面效果 3、使用ModelForm组件 使用ModelForm的前提条件要设置好media 目录 启用media 目录 在django的开发中有两个特殊的文件夹 static , 存放静态文件的路径包括 css、js 、项目图片。media , 用户上传的数据目录。 1、在urls.py中的配置 from django.urls import path,re_path from django.views.static import serve from django.conf import settingsurlpatterns [re_path(r^media/(?Ppath.*)$, serve, {document_root:settings.MEDIA_ROOT},namemedia),]2、在settings.py中配置 import osMEDIA_ROOT os.path.join(BASE_DIR,media) MEDIA_URL /media/ models.py 重新创建一个表来存储文件路径 class City(models.Model):城市name models.CharField(verbose_name名称,max_length32)count models.IntegerField(verbose_name人口)# 本质上数据库也是charField ,自动保存数据upload_to 表示会保存到media目录下的cityimg models.FileField(verbose_nameLogo,max_length128,upload_tocity/)视图函数 通过 form.save() django 自动将文件存储到media目录下的city目录并且把文件路径保存到数据库 from django.shortcuts import render, HttpResponse from app01 import models from app01.utils.bootstrap import BootStrapModelFormclass UploadModelForm(BootStrapModelForm):bootstrap_exclude_name [img]class Meta:model models.Cityfields __all__def upload_modelform(request):if request.method GET:form UploadModelForm()return render(request,upload_form.html,{form:form})form UploadModelForm(datarequest.POST,filesrequest.FILES)if form.is_valid():form.save()return HttpResponse(上传成功)return render(request, upload_form.html, {form: form})upload_form.html {% extends layout.html %}{% block content %}div classcontainerdiv classpanel panel-defaultdiv classpanel-heading图片上传/divdiv classpanel-bodyform methodpost enctypemultipart/form-data novalidate{% csrf_token %}{% for field in form %}div classform-grouplabel {{ field.label }}/label{{ field }}span stylecolor:red{{ field.errors.0 }}/span/div{% endfor %}button typesubmit classbtn btn-primary提交/button/form/div/div/div {% endblock %}效果 数据库存储的
http://www.sadfv.cn/news/425727/

相关文章:

  • 电影网站做流量网站建设功能需求文档
  • 做出网站找个男做那个视频网站
  • 做网站的软件page外贸公司怎么做
  • 网络公司网络推广服务seo引擎优化服务
  • 个人网站网站服务器网站建设分析报告
  • 网站开发包括网站的 等过程企业软件项目管理系统
  • 弄一个网站多少钱高中生自己做 网站
  • 网站建设中怎么添加源码做网站运维应该看的书
  • 网站的跳出率网站后台下载图片
  • 常州高端网站定制公司谷歌应用商店下载
  • 设计网站思路如何写html5网站案例
  • 怎样做一个简单的网站潍坊可以做网站的公司
  • 网站建设常见问题解决方案网页布局技术有哪些
  • 上海景泰建设有限公司网站辽宁鞍山刚刚发布
  • 做外贸采购都是用什么网站移动端模板 wordpress
  • 做简单的网站首页怎么在网上卖自己的产品
  • 瑞安联科网站建设常用的网站有哪些
  • wordpress网站的优化营销qq下载
  • 网站改版方案电脑培训学校能学什么
  • 快速建站全流程详细指导手册桐乡市住房建设局网站公示
  • 电子商务网站建设与维护课程总结阿里云网站备案好了 怎么建站
  • 广州白云区网站建设公司怎么做跳转网站 充值登陆
  • 广西网站建设工具电子商务网站开发项目设计报告
  • 陕煤化建设集团网站矿建二公司网络设置了代理怎么关闭
  • 北京建网站的公司全国做网站的公司
  • 电商设计灵感网站网站制作的付款方式
  • 网站制作经费预算兰州网站定制公司
  • 用canvas做网站男人和女人晚上做污污的视频大网站
  • 高中信息技术网站建设赣州人才网赣州九一人才
  • 网站域名分析wordpress时间轴页面