当前位置: 首页 > 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.huolong8.cn/news/425727/

相关文章:

  • 湖北阳新县建设局网站网站项目开发的制作流程
  • 广州在线网页制作网站seo工具
  • 海外红酒网站建设网页建设哪家好
  • 书页面设计图片重庆seo网络推广优化
  • 淘宝购物网站开发有什么功能网站建设要准备些什么
  • 株洲信息网重庆seo整站优化设置
  • python做网站点登入没反映网页版传奇网站
  • 手机网站建设代码网站公司怎么找客户
  • 威海网站建设whhl个人网站效果
  • 单页网站赚钱网站建设的需求分析
  • 做特卖网站手机版海口网站制作设计
  • 官方网站有哪些公司名词解释
  • 东莞高端品牌网站建设价格意大利之家设计网站
  • wordpress站点链接打不开网址提高工作效率的方法不正确的是
  • 网站源码 后台高端的网站设计多少钱
  • 优化大师appseo教程技术优化搜索引擎
  • 宁波网站建设公司在哪里建设网站 安全事项
  • 杨和勒流网站建设淘宝数据分析工具
  • 那种软件可以做视频网站做网站需要什么知识
  • 网站开发 需求清单企业网站建设最需要的是什么
  • 天津做国外网站wordpress分类发布文章
  • 前端网站开发总结深圳返利网站建设
  • 哪个网站学seo是免费的网页设计基础代码网站
  • 大同网站建设开发规划电子商务网站流程
  • 做网站的公司如何推广做网站站长一年能赚多少钱
  • 宿迁手机网站建设公司企业网站建设的主要步骤
  • 网站营销优化方案wordpress后台上不去
  • 电商网站开发岗位职责做长图网站
  • 表格网站源码7款优秀网站设计欣赏
  • 多企业宣传网站建设网站推广找哪家公司好