django: form fileupload - 1
本节介绍 Form 中一些字段类型的使用,以文件上传字段 FileField 为例:(注,其它字段和相关用法见官方文档中的 Forms -> Built-in Fields)
一,配置 urls.py:
from django.conf.urls import patterns, include, url # Uncomment the next two lines to enable the admin:
from django.contrib import admin
admin.autodiscover() urlpatterns = patterns('',
# Examples:
# url(r'^$', 'csvt03.views.home', name='home'),
# url(r'^csvt03/', include('csvt03.foo.urls')), # Uncomment the admin/doc line below to enable admin documentation:
# url(r'^admin/doc/', include('django.contrib.admindocs.urls')), # Uncomment the next line to enable the admin:
url(r'^admin/', include(admin.site.urls)),
url(r'^index/$','blog.views.index'),
url(r'^blog/show_author/$', 'blog.views.show_author'),
url(r'blog/register/$', 'blog.views.register'), # Django Form
url(r'blog/regist/$', 'blog.views.regist'), # 在前面例子的基础上增加 127.0.0.1:8000/blog/regist/ 地址作测试
)
二,编写 blog.views.regist 处理函数(blog/views.py):
from django.shortcuts import render_to_response as r2r
from blog.models import Employee, Author, Book def index(req):
emps = Employee.objects.all()
return r2r('index.html', {'emps':emps}) def show_author(req):
authors = Author.objects.all()
return r2r('show_author.html', {'authors':authors}) from django import forms
from django.http import HttpResponse class UserForm(forms.Form):
name = forms.CharField()
# username = forms.CharField()
headImg = forms.FileField() def register(req):
if req.method == 'POST':
form = UserForm(req.POST) # Binding
if form.is_valid():
print form.cleaned_data
return HttpResponse('ok')
else:
form = UserForm()
return r2r('register.html', {'form':form}) def regist(req):
if req.method == 'POST':
uf = UserForm(req.POST, req.FILES) # 绑定
if uf.is_valid():
print uf.cleaned_data['name']
upfile = uf.cleaned_data['headImg']
print upfile.name, upfile.size
fp = file('upload/'+upfile.name, 'wb')
fp.write(upfile.read())
fp.close()
return HttpResponse('OK')
else:
uf = UserForm()
return r2r('regist.html', {'uf':uf})
三,编写模板文件 blog/templates/regist.html:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Django DB</title>
</head>
<body>
<div>User Regist</div>
<div>
<form method='post' enctype="multipart/form-data">
{{uf.as_p}}
<input type='submit' value='ok' />
</form>
</div>
</body>
</html>
django: form fileupload - 1的更多相关文章
- django: form fileupload - 2
继续介绍文件上传的第二种形式和第三种形式. ------------------------------------------------------------- 第二种形式较简单,直接用 DB ...
- django form表单验证
一. django form表单验证引入 有时时候我们需要使用get,post,put等方式在前台HTML页面提交一些数据到后台处理例 ; <!DOCTYPE html> <html ...
- Django form模块使用心得
最近用Django 写了一个网站,现在来分享一下对Django form 的一些心得. 一,创建一个表单 创建一个Form表单有两种方式: 第一种方式是继承于forms.Form,的一个子类,通过在f ...
- Python Web框架篇:Django Form组件
Form简介 在HTTP中,表单(form标签),是用来提交数据的,其action属性说明了其传输数据的方法:如何传.如何接收. 访问网站时,表单可以实现客户端与服务器之间的通信.例如查询,就用到了表 ...
- Django form表单
Form介绍 之前在HTML页面中利用form表单向后端提交数据时,都会写一些获取用户输入的标签并且用form标签把它们包起来.与此同时我们在好多场景下都需要对用户的输入做校验,比如校验用户是否输入, ...
- django Form组件
django Form组件 Django的Form主要具有一下几大功能: 生成HTML标签 验证用户数据(显示错误信息) HTML Form提交保留上次提交数据 初始化页面显示内容 小试牛刀 1.创建 ...
- Django Form和ModelForm组件
Form介绍 我们之前在HTML页面中利用form表单向后端提交数据时,都会写一些获取用户输入的标签并且用form标签把它们包起来. 与此同时我们在好多场景下都需要对用户的输入做校验,比如校验用户是否 ...
- 9.24 Django Form组件
2018-9-23 20:10:04 这两天优化了自己图书管理系统 github 连接:https://github.com/TrueNewBee/pythonDemo 顺便整理了博客,写了好多总结, ...
- [py][mx]django form验证-给db减压
django form认证-解压db压力 一般系统都需要前后端都验证 前端验证容器逃逸破解,如通过js console口去发 试想如果后端只有db验证,那么前端无论发什么后端都查询一次db,对db压力 ...
随机推荐
- (四)Angularjs - 小实例(2)
自定义指令编写时钟 模板 <!-- 模板文件 --><html> <!-- 内置的ng-app指令通知编译器启动AngularJS框架--> <body ng ...
- Java语言实现简单FTP软件------>FTP软件远程窗口的实现(六)
1.首先看一下远程窗口的布局效果 2.看一下本地窗口实现的代码框架 3.远程窗口主要实现代码FtpPanel.java package com.oyp.ftp.panel.ftp; import ja ...
- 《javascript权威指南》读书笔记 -part2
我真的很佩服副院长~他是一个很有耐心 极其细致的人 工作态度严谨 代码简洁风格统一~再乱遭遭的代码只要经过他的手就会变的很漂亮 羡煞我也~ 不说废话了 还是乖乖看书吧~maybe可能也许的某一天 ...
- express4.x中的链式路由句柄
var express = require("express"); var router = express(); router.get('/', function (req, r ...
- 转:支撑Github的开源技术
原文来自于:http://www.infoq.com/cn/news/2014/03/projects-power-github Github在3月19号开放了新的项目展示页面(Showcase),S ...
- 转:Raspberry Pi(树莓派)试用小记
近期入手一树莓派卡片机,体验了一下它的强大,写篇报告,推广一下哈! 机器截图: 基础参数: CPU:700 MHz, ARM11 内存:512M(还有一种是256M的) 支持GPU加速(高清视频无压力 ...
- javascript scroll事件
http://developer.51cto.com/art/201107/277994.htm onscroll事件 window.onscroll|| document.onscroll var ...
- python word操作深入
python 把word转html:上传页面<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" &q ...
- python手记(38)
runfile(r'K:\testpro\testopencv.py', wdir=r'K:\testpro') http://blog.csdn.net/myhaspl myhaspl@qq.com ...
- rsyslog 日志服务器接收日志权限问题
rsyslog 权限: 默认 [root@dr-mysql01 zjzc_log]# ls -ltr zj-frontend0*-access*27 -rw------- 1 root root 32 ...