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)

posted @ 2018-03-07 14:00  程先森  阅读(144)  评论(0)    收藏  举报