Python学习笔记-数据库的使用(四)
1 Django-form(表单)的使用
1) 新建项目、应用
2) 创建blog/templates/index.html
<html>
<head>
<title>mypage</title>
</head>
<body>
<form method='post'>
{{form}}
<input type="submit" value="ok" />
</form>
</body>
</html>
3) 设置settings.py
l 设置DARABASES
'ENGINE': 'django.db.backends.mysql',
'NAME': 'web_08', #os.path.join(BASE_DIR, 'db.sqlite3'),
'PASSWORD': 'password',
'USER': 'root',
'HOST': '',
'PORT': '',
l INSTALLED_APPS添加应用blog
l MIDLLEWARE注释掉csrf
# 'django.middleware.csrf.CsrfViewMiddleware',
4) 设置web_08/urls.py
5) 编码blog/views.py
from django.shortcuts import render_to_response
from django import forms
from django.http import HttpResponse
class UserForm(forms.Form):
name = forms.CharField()
def register(req):
if req.method == 'POST':
form = UserForm(req.POST)(绑定提交的数据)
if form.is_valid():
print form.cleaned_data(将数据在shell输出)
return HttpResponse('OK')
else:
form = UserForm()
return render_to_response('index.html', {'form':form})
6) 运行开发服务器
#python manage.py runserver
2 表单form字段类型的使用
1) 之前步骤同10
2) 模板文件index.html
<html>
<head>
<title>mypage</title>
</head>
<body>
<div>Register</div>
<div>
<form method = "post" enctype = "multipart/form-data">
{{form.as_p}}
<input type="submit" value="ok" />
</form>
</div>
</body>
</html>
3) 视图文件views.py
from django.http import HttpResponse
from django import forms
class UserForm(forms.Form):
username = forms.CharField()
headimg = forms.FileField()
def regist(req):
if req.method == 'POST':
form = UserForm(req.POST,req.FILES)
if form.is_valid():
print form.cleaned_data['username']
print form.cleaned_data['headimg'].name
print form.cleaned_data['headimg'].size
fp = file('/upload/'+form.cleaned_data['headimg'].name, 'wb')(文件上传)
s = form.cleaned_data['headimg'].read()
fp.write(s)
fp.close()
return HttpResponse('OK')
else:
form = UserForm()
return render_to_response('index.html', {'form': form})
3 利用后台上传文件
1) 编码blog/models.py
from django.db import models
class User(models.Model):
name = models.CharField(max_length = 30)
headImg = models.FileField(upload_to='./upload/')
def __unicode__(self):
return self.name
2) 注册方法
from django.contrib import admin
from blog.models import User
admin.site.register(User)

浙公网安备 33010602011771号