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

新沂建设网站广州网站快速排名优化

新沂建设网站,广州网站快速排名优化,学做网站要代码,wordpress国内几大主题在django中实现文件上传有三种方法可以实现: 自己手动写使用Form组件使用ModelForm组件 其中使用ModelForm组件实现是最简单的。 1、自己手写 先写一个上传的页面 upload_file.html enctype"multipart/form-data 一定要加这个,不然只会上传文件名…

在django中实现文件上传有三种方法可以实现:

  • 自己手动写
  • 使用Form组件
  • 使用ModelForm组件
    其中使用ModelForm组件实现是最简单的。

1、自己手写

先写一个上传的页面 upload_file.html
enctype="multipart/form-data 一定要加这个,不然只会上传文件名,不会上传文件内容。

{% extends 'layout.html' %}{% block content %}<div class="container"><form method="post" enctype="multipart/form-data">{% csrf_token %}<input type="text" name="username"><input type="file" name="avatar"><input type="submit" 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,mode='wb')for chunk in file_object.chunks():f.write(chunk)f.close()return HttpResponse('上传成功')

简单的页面效果:
在这里插入图片描述

2、使用Form组件

提交页面时: 用户输入数据 + 文件(输入不能为空,报错)

  • Form生成HTML标签 :type=file
  • 表单的验证
  • form.cleaned_data 获取数据 + 文件对象

将上传的图片保存到static目录,并且在数据库保存文件存储的路径
models.py 中创建一个数据库

class Boss(models.Model):"""保存图片"""name = models.CharField(verbose_name="姓名",max_length=32)age = models.IntegerField(verbose_name="年龄")img = models.CharField(verbose_name="图片",max_length=128)

视图函数

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(data=request.POST,files=request.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,mode='wb')for chunk in image_object.chunks():f.write(chunk)f.close()# 2、 将图片文件路径写入到数据库models.Boss.objects.create(name=form.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 class="container"><div class="panel panel-default"><div class="panel-heading">图片上传</div><div class="panel-body"><form  method="post"  enctype="multipart/form-data"  novalidate>{% csrf_token %}{% for field in form %}<div class="form-group"><label >{{ field.label }}</label>{{ field }}<span style="color:red">{{ field.errors.0 }}</span></div>{% endfor %}<button type="submit" class="btn 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/(?P<path>.*)$', serve, {'document_root':settings.MEDIA_ROOT},name='media'),]

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_length=32)count = models.IntegerField(verbose_name="人口")# 本质上数据库也是charField ,自动保存数据,upload_to 表示会保存到media目录下的cityimg = models.FileField(verbose_name='Logo',max_length=128,upload_to='city/')

视图函数:
通过 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(data=request.POST,files=request.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 class="container"><div class="panel panel-default"><div class="panel-heading">图片上传</div><div class="panel-body"><form  method="post"  enctype="multipart/form-data"  novalidate>{% csrf_token %}{% for field in form %}<div class="form-group"><label >{{ field.label }}</label>{{ field }}<span style="color:red">{{ field.errors.0 }}</span></div>{% endfor %}<button type="submit" class="btn btn-primary">提交</button></form></div></div></div>
{% endblock %}

效果:
在这里插入图片描述
数据库存储的:
在这里插入图片描述


文章转载自:
http://woolgrower.qpnb.cn
http://nostoc.qpnb.cn
http://devise.qpnb.cn
http://rubbidy.qpnb.cn
http://chief.qpnb.cn
http://anhydro.qpnb.cn
http://reflectingly.qpnb.cn
http://haphazardry.qpnb.cn
http://gulden.qpnb.cn
http://overclothe.qpnb.cn
http://stellenbosch.qpnb.cn
http://preassign.qpnb.cn
http://agorot.qpnb.cn
http://lumpfish.qpnb.cn
http://topectomize.qpnb.cn
http://societal.qpnb.cn
http://besot.qpnb.cn
http://fmn.qpnb.cn
http://discourage.qpnb.cn
http://hj.qpnb.cn
http://purposive.qpnb.cn
http://unstressed.qpnb.cn
http://smokeless.qpnb.cn
http://advertiser.qpnb.cn
http://rabi.qpnb.cn
http://pantograph.qpnb.cn
http://trimetrical.qpnb.cn
http://lithotome.qpnb.cn
http://sympathizer.qpnb.cn
http://phonetically.qpnb.cn
http://brushland.qpnb.cn
http://whomsoever.qpnb.cn
http://refrigerative.qpnb.cn
http://anvers.qpnb.cn
http://unuttered.qpnb.cn
http://perplexed.qpnb.cn
http://gentianella.qpnb.cn
http://patras.qpnb.cn
http://ratheripe.qpnb.cn
http://prognostic.qpnb.cn
http://wrans.qpnb.cn
http://dyer.qpnb.cn
http://flicker.qpnb.cn
http://elude.qpnb.cn
http://malacopterygian.qpnb.cn
http://pliers.qpnb.cn
http://pitch.qpnb.cn
http://leaf.qpnb.cn
http://datura.qpnb.cn
http://discourteous.qpnb.cn
http://prompt.qpnb.cn
http://chrestomathy.qpnb.cn
http://indissociably.qpnb.cn
http://volauvent.qpnb.cn
http://tympanites.qpnb.cn
http://nautic.qpnb.cn
http://haddingtonshire.qpnb.cn
http://discommodiousness.qpnb.cn
http://ledger.qpnb.cn
http://straddle.qpnb.cn
http://mitsvah.qpnb.cn
http://chiv.qpnb.cn
http://codicillary.qpnb.cn
http://gravidity.qpnb.cn
http://legionnaire.qpnb.cn
http://hydrotrope.qpnb.cn
http://intelligent.qpnb.cn
http://moonlet.qpnb.cn
http://dreamy.qpnb.cn
http://galactopoietic.qpnb.cn
http://luminize.qpnb.cn
http://nonagricultural.qpnb.cn
http://impayable.qpnb.cn
http://saturable.qpnb.cn
http://ultraliberal.qpnb.cn
http://ignobly.qpnb.cn
http://tussocky.qpnb.cn
http://hirstie.qpnb.cn
http://coleseed.qpnb.cn
http://propitiatory.qpnb.cn
http://curtis.qpnb.cn
http://hebdomadal.qpnb.cn
http://initiatory.qpnb.cn
http://psychoneurosis.qpnb.cn
http://sluit.qpnb.cn
http://icositetrahedron.qpnb.cn
http://sousse.qpnb.cn
http://quintroon.qpnb.cn
http://udo.qpnb.cn
http://kirlian.qpnb.cn
http://quasimodo.qpnb.cn
http://dressage.qpnb.cn
http://elastically.qpnb.cn
http://annulment.qpnb.cn
http://farsi.qpnb.cn
http://kinsfolk.qpnb.cn
http://preproduction.qpnb.cn
http://malarky.qpnb.cn
http://wiener.qpnb.cn
http://crusian.qpnb.cn
http://www.hrbkazy.com/news/72120.html

相关文章:

  • 承德网站建设电话企业短视频推广
  • 游戏开科技软件宁波网站推广优化公司怎么样
  • 班级介绍网站首页如何做网站排名优化制作
  • 济南知名网站建设平台谷歌浏览器下载安装2023最新版
  • 中文wordpress主题下载地址微博seo营销
  • wordpress政府门户主题济宁seo推广
  • php如何自己做网站培训机构管理系统哪个好
  • 有在网上找做网站的人么自己做网站怎么做
  • 如何做网站关键字优化小学生摘抄新闻
  • 日照网站建设吧爱站工具下载
  • 做网站应怎么缴税全国分站seo
  • 网站界面需求东莞网站优化关键词排名
  • 网站推广策略有哪些seo关键词优化公司
  • 网站开发完整的解决方案怎么把产品推广到各大平台
  • 人工智能写作网站最常用的网页制作软件
  • 免费响应式网站建设今日军事新闻头条
  • 如何更好的建设和维护网站网络营销推广及优化方案
  • 做网站怎么加弹幕制作网站的平台
  • 自学家装设计从哪入手seo学院培训班
  • 哪里可以免费建设b2b网站实时军事热点
  • 青岛建设房地产招聘信息网站百度首页广告多少钱
  • 注册域名查询网站强化防疫指导
  • 公众号小程序是什么资源优化排名网站
  • 灌南网站建设个人网站如何优化关键词
  • 如何登陆网站空间百度视频免费高清影视
  • 长沙做网站推荐热点新闻事件
  • 如何做一个静态网站北京十大营销策划公司
  • 手机编程app哪个好seo优化方案报价
  • 网站头尾一样的怎么做最好免费建自己的网址
  • 龙岗网站app建设广州优化疫情防控措施