您的位置:首页 > 编程语言 > Go语言

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 |+----+----------+--------------+
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: