django 文件上传
2016-06-29 13:39
405 查看
1.创建 app upload在 mysite 中 python manage.py startapp upload2.在 settings.py 中添加 upload 应用INSTALLED_APPS = [ 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles','blog','upload',]3.设计 model打开mysite/upload/models.pyfrom django.db import models# Create your models here.class User(models.Model):username = models.CharField(max_length = 30)headImg = models.FileField(upload_to = './upload/')def __unicode__(self):return self.username4.进行数据库同步python manage.py makemigrations uploadpython manage.py migrate5.创建视图from django.shortcuts import renderfrom django.shortcuts import render_to_responsedef register(request): return render_to_response('register.html',{})6.创建注册页面在 upload 目录下 创建 templates 目录,并在该目录下创建 register.html<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title></title></head><body><h1>register</h1></body></html>7.设置模板路径1.8以下:打开mysite2/mysite2/settings.py文件,在底部添加:
#template TEMPLATE_DIRS=( '/home/fnngj/djpy/mysite2/disk/templates' )
8.设置 url
from django.conf.urls import urlfrom django.contrib import adminfrom blog import views as blog_viewsfrom upload import views as upload_viewsurlpatterns = [url(r'^admin/', admin.site.urls),url(r'^blog/', blog_views.index),url(r'^upload/', upload_views.register),]
9.启动服务
python manage.py runserver 9999 &
10.完善表单提交
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title></title></head><body><h1>register</h1><form method="post" enctype="multipart/form-data" >{{uf.as_p}}<input type="submit" value="ok"/></form></body></html>
11.打开 views.py
from django.shortcuts import renderfrom django.shortcuts import render_to_responsefrom django import formsfrom django.http import HttpResponsefrom upload.models import User #此处一定要导入模型# Create your views here.class UserForm(forms.Form):username = forms.CharField()headImg = forms.FileField()def register(request):if request.method == "POST":uf = UserForm(request.POST, request.FILES)if uf.is_valid():return HttpResponse('upload ok!')else:uf = UserForm()return render_to_response('register.html',{'uf':uf})12.访问 http://127.0.0.1:9999/upload/
修改 settings.py 进行注释MIDDLEWARE_CLASSES = [ 'django.middleware.security.SecurityMiddleware', 'django.contrib.sessions.middleware.SessionMiddleware', 'django.middleware.common.CommonMiddleware',#'django.middleware.csrf.CsrfViewMiddleware', 'django.contrib.auth.middleware.AuthenticationMiddleware', 'django.contrib.auth.middleware.SessionAuthenticationMiddleware', 'django.contrib.messages.middleware.MessageMiddleware', 'django.middleware.clickjacking.XFrameOptionsMiddleware',] 13.将数据写入数据库,我这边采用 的是 mysql ,具体配置安装见 django1.9 使用 MySQLdb修改 views.py
from django.shortcuts import renderfrom django.shortcuts import render_to_responsefrom django import formsfrom django.http import HttpResponsefrom upload.models import User# Create your views here.class UserForm(forms.Form):username = forms.CharField()headImg = forms.FileField()def register(request):if request.method == "POST":uf = UserForm(request.POST, request.FILES)if uf.is_valid():#获取表单信息username = uf.cleaned_data['username']headImg = uf.cleaned_data['headImg']#写入数据库user = User()user.username = usernameuser.headImg = headImguser.save()return HttpResponse('upload ok!')else:uf = UserForm()return render_to_response('register.html',{'uf':uf})14.访问http://127.0.0.1:9999/upload/,查看数据库mysql> select * from upload_user;+----+----------+--------------+| id | username | headImg |+----+----------+--------------+| 1 | zhangsan | upload/1.jpg|| 2 | zhangsan | upload/2.jpg |+----+----------+--------------+
相关文章推荐
- django(一)
- cargo自动部署
- Go语言学习笔记一——环境搭建
- NYOJ Gone Fishing 贪心策略
- 自动生成logo的网址
- google batchnorm 资料总结
- Go语言_Go的WEB应用程序
- mongo主从
- go语言学习之路三:切片
- 在Altium Designer 2009下如何添加Logo图
- 关于Django1.6版本的Template设置
- django页面form添加和编辑
- magento Slider插件和Brandlogo插件错误处理
- django小结
- Which machine learning algorithms can be considered as among the best?
- 日志分析系统——Hangout源码学习
- GOF23种设计模式精解
- multiboot 的golden image 和update image的 mcs文件的生成及调试
- 来谈谈WebAssembly是个啥?为何说它会影响每一个Web开发者?
- Teap树堆