ITPub博客

首页 > 应用开发 > IT综合 > 【Python】python-django上传下载功能

【Python】python-django上传下载功能

原创 IT综合 作者:小亮520cl 时间:2017-03-15 14:26:50 0 删除 编辑

1.models设计

  1. from django.db import models

  2. # Create your models here.
  3. class User(models.Model):
  4.     username = models.CharField(max_length = 30)
  5.     headImg = models.FileField(upload_to = './static/upload/')                ##重点,上传路径,项目/static/upload下

  6.     def __unicode__(self):
  7.         return self.username

2.view视图设计

  1. #coding=utf-8
  2. from django.shortcuts import render,render_to_response
  3. from django import forms
  4. from django.http import HttpResponse
  5. from disk.models import User

  6. # Create your views here.
  7. class UserForm(forms.Form):
  8.     username = forms.CharField()
  9.     headImg = forms.FileField()

  10. def register(request):
  11.     if request.method == "POST":
  12.         uf = UserForm(request.POST,request.FILES)
  13.         if uf.is_valid():
  14.             #获取表单信息
  15.             username = uf.cleaned_data['username']
  16.             headImg = uf.cleaned_data['headImg']
  17.             #写入数据库
  18.             user = User()
  19.             user.username = username
  20.             user.headImg = headImg
  21.             user.save()
  22.             return HttpResponse('upload ok!')
  23.     else:
  24.         uf = UserForm()
  25.     return render_to_response('register.html',{'uf':uf})

  26. def listpag(request):
            listpag=User.objects.all()
            return render_to_response('listpag.html',locals())

urls配置省略。。。。

3.html设计

  1. 上传页面
  2. <?xml version="1.0" encoding="UTF-8"?>
  3. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
  4. <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
  5. <head>
  6.     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
  7.         <title></title>
  8.         </head>
  9.         <body>
  10.         <h1>register</h1>
  11.         <form method="post" enctype="multipart/form-data" >
  12.         {{uf.as_p}}                                              ### as_p就是全部字段的意思
  13.         <input type="submit" value="ok"/>
  14.         </form>
  15.         </body>
  16.         </html>


  17. 显示页面
  18. <?xml version="1.0" encoding="UTF-8"?>
  19. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
  20. <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
  21. <head>
  22.     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
  23.         <title></title>
  24.         {% load staticfiles %}
  25.         </head>
  26.         <body>
  27.         <h1>register</h1>
  28.         <img src="/static/upload/2.jpg" alt="郁金香" />                 ###以静态路径的方式调用
  29.         <img src="{% static 'upload/2.jpg' %}" alt="郁金香" />         ###以tag的方式调用图片

  30.                   {% for listpag in listpag%}
  31.                   {{ listpag.username }}
  32.                   {{ listpag.headImg }}
  33.                   {% endfor %}
  34.                
  35.         </body>
  36.         </html>

4.setting.py设置
  1. STATIC_URL = '/static/'
  2. 上面那句是写死的,让django能调用静态文件,下面这句是配置静态文件的路径,路径可以填写多个,用逗号隔开
  3. STATICFILES_DIRS = (
  4.     os.path.join(BASE_DIR, "static"),
  5. )
  6. BASE_DIR一般是django定义好的,在setting.py的最上面:
  7. BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))

  8. os.path.join的作用是把两个路径拼接成一个完整的路径。
  9. 上面配置修改完,还需要在urls.py中加入配置,首先要引入模块
  10. from django.conf.urls.static import static
  11. from django.conf import settings


  12. 至此,django就可以调用静态文件了,模版文件还要注意写法,{% load staticfiles %}不要忘记写,可见第三步骤

参考文档:
http://www.cnblogs.com/tramp/p/5230270.html
http://www.cnblogs.com/fnng/p/3740274.html

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/29096438/viewspace-2135397/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
毕业以后专业任职数据库工程师职位,itpub一直作为自己的笔记记录的地方,blog写的不详细,草书笔记,仅供参考!

注册时间:2013-09-12

  • 博文量
    529
  • 访问量
    1126951