
Django文件上传
发布日期:2021-05-06 22:01:54
浏览次数:21
分类:精选文章
本文共 2052 字,大约阅读时间需要 6 分钟。
参考 自强学堂
风之清扬- 创建
django-admin.py startproject Django_Uploaddjango-admin.py startapp Upload
- ,注意这里的upload_to指向了MEDIA_ROOT, 这个MEDIA_ROOT需要在settings.py中配置
#coding=utf-8from __future__ import unicode_literalsfrom django.db import modelsclass NormalUser(models.Model): username=models.CharField('用户名',max_length=30) #用户名 headImg=models.FileField('文件',upload_to='./')#文件名 def __str__(self): return self.username class Meta: ordering=['username']#排序风格username
- 在settings.py添加如下定义
MEDIA_URL = '/media/'MEDIA_ROOT = os.path.join(BASE_DIR, 'Upload/upload')
- 数据库同步
Python manage.py makemigrationspython manage.py migrate
#coding=utf-8from django.shortcuts import render,render_to_responsefrom django import formsfrom django.http import HttpResponsefrom blog.models import *# Create your views here.class NormalUserForm(forms.Form): #form的定义和model类的定义很像 username=forms.CharField() headImg=forms.FileField()#在View中使用已定义的Form方法def registerNormalUser(request): #刚显示时调用GET方法 if request.method=="POST": uf = NormalUserForm(request.POST,request.FILES)#刚显示时,实例化表单(是否有数据) if uf.is_valid():#验证数据是否合法,当合法时可以使用cleaned_data属性。 #用来得到经过'clean'格式化的数据,会所提交过来的数据转化成合适的Python的类型。 username = uf.cleaned_data['username'] headImg = uf.cleaned_data['headImg'] #write in database normalUser=NormalUser()#实例化NormalUser对象 normalUser.username = username normalUser.headImg = headImg normalUser.save()#保存到数据库表中 return HttpResponse('Upload Succeed!')#重定向显示内容(跳转后内容) else: uf=NormalUserForm()#刚显示时,实例化空表单 return render(request,'register.html',{ 'uf':uf})#只有刚显示时才起作用
from django.contrib import adminfrom django.urls import pathfrom Upload.views import *urlpatterns = [ path('register/', registerNormalUser), path('admin/', admin.site.urls),]
- 添加templates/register.html
Register Register
- 输入以下命令:python runserver运行服务器 登录http://127.0.0.1:8000/register/查看效果
发表评论
最新留言
做的很好,不错不错
[***.243.131.199]2025年04月05日 02时07分04秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
js的严格模式
2019-03-06
idea的安装和无限期试用
2019-03-06
Oracle VM VirtualBox安装PVE虚拟机
2019-03-06
【转】如何用css限制文字长度,使溢出的内容用省略号…显示
2019-03-06
Android MediaPlayer setDataSource failed
2019-03-06
ASP.NET Core 实战:Linux 小白的 .NET Core 部署之路
2019-03-06
【nodejs原理&源码杂记(8)】Timer模块与基于二叉堆的定时器
2019-03-06
大前端的自动化工厂(1)——Yeoman
2019-03-06
数据仓库建模方法论
2019-03-06
虚拟机搭建hadoop环境
2019-03-06
DataStax Bulk Loader教程(四)
2019-03-06
.NET应用框架架构设计实践 - 概述
2019-03-06
[菜鸟的设计模式之旅]观察者模式
2019-03-06
Spring-继承JdbcDaoSupport类后简化配置文件内容
2019-03-06
Java基础IO流(一)
2019-03-06
Hibernate入门(四)---------一级缓存
2019-03-06
一个web前端开发者的日常唠叨
2019-03-06
内存分配-slab分配器
2019-03-06
技术写作技巧分享:我是如何从写作小白成长为多平台优秀作者的?
2019-03-06