1.models设计
-
from django.db import models
-
-
# Create your models here.
-
class User(models.Model):
-
username = models.CharField(max_length = 30)
-
headImg = models.FileField(upload_to = './static/upload/') ##重点,上传路径,项目/static/upload下
-
-
def __unicode__(self):
-
return self.username
2.view视图设计
-
#coding=utf-8
-
from django.shortcuts import render,render_to_response
-
from django import forms
-
from django.http import HttpResponse
-
from disk.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 = username
-
user.headImg = headImg
-
user.save()
-
return HttpResponse('upload ok!')
-
else:
-
uf = UserForm()
-
return render_to_response('register.html',{'uf':uf})
-
-
def listpag(request):
listpag=User.objects.all()
return render_to_response('listpag.html',locals())
urls配置省略。。。。
3.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>
-
<form method="post" enctype="multipart/form-data" >
-
{{uf.as_p}} ### as_p就是全部字段的意思
-
<input type="submit" value="ok"/>
-
</form>
-
</body>
-
</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>
-
{% load staticfiles %}
-
</head>
-
<body>
-
<h1>register</h1>
-
<img src="/static/upload/2.jpg" alt="郁金香" /> ###以静态路径的方式调用
-
<img src="{% static 'upload/2.jpg' %}" alt="郁金香" /> ###以tag的方式调用图片
-
-
{% for listpag in listpag%}
-
{{ listpag.username }}
-
{{ listpag.headImg }}
-
{% endfor %}
-
-
</body>
-
</html>
4.setting.py设置
-
STATIC_URL = '/static/'
-
上面那句是写死的,让django能调用静态文件,下面这句是配置静态文件的路径,路径可以填写多个,用逗号隔开
-
STATICFILES_DIRS = (
-
os.path.join(BASE_DIR, "static"),
-
)
-
BASE_DIR一般是django定义好的,在setting.py的最上面:
-
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
-
-
os.path.join的作用是把两个路径拼接成一个完整的路径。
-
上面配置修改完,还需要在urls.py中加入配置,首先要引入模块
-
from django.conf.urls.static import static
-
from django.conf import settings
-
-
-
至此,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/
,如需转载,请注明出处,否则将追究法律责任。