from django.shortcuts import render
from django.shortcuts import HttpResponse
import os # Create your views here.
error_msg = ''
def register(request):
if request.method == 'POST':
username = request.POST.get('username')
passwd = request.POST.get('passwd')
email = request.POST.get('email')
tel = request.POST.get('tel')
photo = request.FILES.get('file')
uploadfile = os.path.join('upload',photo.name)
with open(uploadfile,'wb') as fileobj:
for chunk in photo.chunks():
fileobj.write(chunk)
if username == None or passwd == None or email == None or tel == None:
error_msg = '不能为空,请重新输入!'
return render(request, 'regist/register.html', {'error_msg': error_msg})
else:
print('准备输入mysql')
return HttpResponse('注册成功')
elif request.method == 'GET':
return render(request,'regist/register.html',{'error_msg': ''})

  

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>用户注册</title>
</head>
<body>
<div id="t2" class="header-r">
<form name="register_form" id="register_form" action="/regist/" method="post" enctype="multipart/form-data">
<h4>输入账户信息</h4>
<input type="text" id="username" name="username" placeholder="用户名"/>
<input type="password" id="passwd" name="passwd" placeholder="密码"/>
<input type="text" id="email" name="email" placeholder="邮箱"/>
<input type="text" id="tel" name="tel" placeholder="电话"/>
<input type="file" id="file" name="file"/>
<!--<input type="button" value="login" />-->
<input type="submit" value="确定注册" />
<p style="color: red">{{ error_msg }}</p>
</form>
<p style="color: red">{{ error_msg }}</p> </div>
</body>
</html>

  

urls.py会传给views.fun 一个request变量,包含所有http参数。

request.method 包括get和post,post里,fun可以获取表单传过来的参数,然后进行orm操作。

表单还可以传文件到服务端,不过表单里要写enctype="multipart/form-data",在服务端指定存到路径。

另外,如果表单里有checkbox这种多选的input类型,在后台收到的就是一个list,需要用list = request.POST.getlist.

django接受表单的更多相关文章

  1. python运维开发(十九)----Django后台表单验证、session、cookie、model操作

    内容目录: Django后台表单验证 CSRF加密传输 session.cookie model数据库操作 Django后台Form表单验证 Django中Form一般有2种功能: 1.用于做用户提交 ...

  2. django form表单验证

    一. django form表单验证引入 有时时候我们需要使用get,post,put等方式在前台HTML页面提交一些数据到后台处理例 ; <!DOCTYPE html> <html ...

  3. django from表单验证

    django from表单验证   实现:表单验证 工程示例: urls.py 1 2 3 4 5 6 7 8 9 from django.conf.urls import url from djan ...

  4. Struts2(接受表单参数)请求数据自动封装和数据类型转换

    Struts2请求数据自动封装: (1)实现原理:参数拦截器 (2)方式1:jsp表单数据填充到action中的属性:        普通的成员变量,必须给set,get可以不给的.    注意点,A ...

  5. django Form表单的使用

    Form django表单系统中,所有的表单类都作为django.forms.Form的子类创建,包括ModelForm 关于django的表单系统,主要分两种 基于django.forms.Form ...

  6. Django(5) session登录注销、csrf及中间件自定义、django Form表单验证(非常好用)

    一.Django中默认支持Session,其内部提供了5种类型的Session供开发者使用: 数据库(默认) 缓存 文件 缓存+数据库 加密cookie 1.数据库Session 1 2 3 4 5 ...

  7. django创建表单以及表单数据类型和属性

    08.15自我总结 关于django的表单不同关系之间的创建 一.不同关系之间的创建 1.一对一 举例 母表:userinfo id name age 1 张三 12 2 李四 58 字表:priva ...

  8. Django form表单 组件

    目录 Django form表单 组件 Form 组件介绍 普通方式手写注册功能 使用form组件实现注册功能 Form 常用字段与插件 常用字段(必备) 字段参数(必备) 内置验证(必备) 自定义效 ...

  9. 关于django post表单

    CSRF verification failed. Request aborted. 默认会出现该状况,解决办法: 1. 使用requestcontext from django.template i ...

随机推荐

  1. openwrt gstreamer实例学习笔记(七. gstreamer 缓冲区(Buffers)和事件(Events))

    1)概述 管道的数据流由一组缓冲区和事件组成,缓冲区包括实际的管道数据,事件包括控制信息,如寻找信息和流的终止信号.所有这些数据流在运行的时候自动的流过管道. 2) 缓冲区(Buffers) 缓冲区包 ...

  2. HTTP协议六种请求方法,get,head,put,delete,post有什么区别

    标准Http协议支持六种请求方法,即: 1.GET 2.POST 3.PUT 4.Delete 5.HEAD 6.Options 但其实我们大部分情况下只用到了GET和POST.如果想设计一个符合RE ...

  3. C# 软件实现远程桌面调用

    1.https://www.codeproject.com/Articles/19836/Palantir-Remote-Desktop-Manager codeproject项目 2.http:// ...

  4. JS判断按时间跳转到相应的页面

    <!--时间段跳转js--><script language="javaScript" type="text/javascript"> ...

  5. html5--6-9 CSS选择器6--伪类选择器

    html5--6-9 CSS选择器6--伪类选择器 实例 @charset="UTF-8"; /*:root{background: green}*/ /*li:first-chi ...

  6. highchart学习网址

    http://www.highcharts.me/api/index.html   

  7. jsch文件下载功能

    转载:http://www.cnblogs.com/longyg/archive/2012/06/25/2561332.html 上一篇讲述了使用JSch实现文件上传的功能,这一篇主要讲述一下JSch ...

  8. 【USACO】 Max Flow

    [题目链接] 点击打开链接 [算法] LCA + 树上差分 [代码] #include<bits/stdc++.h> using namespace std; int i,x,y,N,K, ...

  9. jQuery EasyUI Portal 保存拖动位置,仿谷歌DashBoard效果的

    仿照谷歌http://www.google.com/ig?hl=zh-CN中的效果,本文档中包含了拖动后保存位置至Cookie中以及拖动后不保存位置的html文件效果,文档结构

  10. Vue.nextTick()的正确使用

    Vue异步执行DOM更新.只要观察导数据变化,Vue将开启一个队列,并缓冲在同一事件循环中发生的所有数据改变,如果同一个watcher被多次触发,只会一次推入到队列中.这种在缓冲时去除重复数据对于避免 ...