zoukankan      html  css  js  c++  java
  • Django 处理处理表单

    除非你计划构建的网站和应用只是发布内容而不接受访问者的输入,否则你将需要理解并使用表单
    
    
    HTML 表单:
    
    在HTML中,表单的作用是收集标签中的内容,<form>...</form> 中间可以由访问者添加类似于文本,选择,
    
    或者一些控制模块等等,然后 这些内容将会被送到服务端。
    
    node2:/django/mysite/news/templates#cat index.html
    <html>
    	<head>		
    <title>Index</title>
    		<link rel='stylesheet' type='text/css' href='/static/news/Css/Index/index.css'/>
    	</head>
    	<body>
    		<h1>布丁运维管理平台</h1>
    		<!--图片标签-->
    		<img class="img_bk" src="/static/news/scan.jpg"/>
    		<!--表单提交-->
    		<form action="/main/" method="post" >
    			<table cellspacing="0" cellpadding="0">
    				<tr>
    					<td class="td1">用户名:</td>
    					<td><input type="text" name="username"/></td>
    					<td class="td3"></td>
    					<td class="td4"></td>
    				<tr/>
    				<tr>
    					<td class="td1">密码:</td>
    					<td><input type="password" name="password"/></td>
    					<td class="td3"></td>
    					<td class="td4"></td>
    				<tr/>
    				<!-- <tr> -->
    					<!-- <td class="td1">验证码:</td> -->
    					<!-- <td>   <input type='text' name='code' /></td> -->
    					<!-- <td class="td3"><img src="__APP__/Public/code" οnclick='this.src=this.src+"?"+Math.random()'/></td> -->
    					<!-- <td class="td4"></td> -->
    				<!-- </tr> -->
    				<tr>
    					<td class="td1"></td>
    					<td><input type="submit" value="" name="imgLogin" /></td>
    					<td class="td3"></td>
    					<td class="td4"></td>
    				</tr>
    			</table>
    		</form>
    	</body>
    </html>
    
    
    与<input> 元素一样,一个表单必须指定两样东西:
    
    1.目的地:响应用户输入数据的URL
    
    2.方式:发送数据的HTTP方法
    
    例如:Django Admin 站点的登陆表单包含几个<input> 元素:
    
    
    type="text" 用于用户名,type="password" 用于密码,type="submit" 用于“Log in" 按钮。它还包含一些用户看不到的隐藏的文本字段,Django 使用它们来决定下一步的行为。
    
    它还告诉浏览器表单数据应该发往<form> 的action 属性指定的URL —— /admin/,而且应该使用method 属性指定的HTTP 方法 —— post。
    
    当触发<input type="submit" value="Log in"> 元素时,数据将发送给/admin/。
    
    
    
    
    
    
    GET和POST:
    
    处理表单时只会用到GET和POST 方法:
    
    Django 的登陆表单使用POST方法,在这个方法中浏览器组合表单数据,
    
    对它们进行编码以用于传输,将它们发送到服务器然后接收它的响应。
    
    相反,GET组合提交的数据为一个字符串,然后使用它来生成一个URL。
    
    Django 在表单中的角色
    
    处理表单是一件很复杂的事情,考虑一下Django的Admin站点,不同类型的大量数据项需要在一个表单中准备好,
    
    渲染成HTML,使用一个方便的界面编辑,返回服务器,验证并清除,然后保存或者向后继续处理。
    
    
    Django 中的表单:
    
    我们已经简短的讲述HTML表单,但是HTML的<form> 只是其机制的一部分。
    
    在一个web应用中,"表单"可能指HTML <form>、或者生成它的Django 的Form、或者提交时发送的结构化数据、或者这些部分的总和。
    
    
    构建一个表单:
    
    需要完成的工作:
    
    假设你想在你的网站上创建一个简单的表单,以获得用户的名字,你需要这样的模板:
    
    <form action="/your-name/" method="post">
        <label for="your_name">Your name: </label>
        <input id="your_name" type="text" name="your_name" value="{{ current_name }}">
        <input type="submit" value="OK">
    </form>
    
    
    这告诉浏览器发送表单的数据到URL /your-name/,并使用POST 方法。
    
    它将显示一个标签为"Your name:"的文本字段,和一个‘OK’按钮。
    
    
    你将需要一个视图来渲染这个包含HTML表单的模板,并提供合适的current_name 字段
    
    
    当表单提交时,发往服务器的POST 请求将包含表单数据。
    
    现在你还需要一个对应/your-name/ URL的视图,它在请求中找到正确的键/值对,然后处理它们。
    
    这是一个非常简单的表单,实际应用中,一个表单可能包含几十上百个字段,其中大部分需要预填充,
    
    
    而且我们预料到用户景来会编辑
    
    
    在Django中构建一个表单:
    
    Form类
    
    我们已经计划好了我们的HTML,表单应该呈现的样子。在Django中,我们的起始点是这里:
    
    node2:/django/mysite/news#cat forms.py
    from django import forms
    
    class UploadFileForm(forms.Form):
        title = forms.CharField(max_length=50)
        file = forms.FileField()
    	
    它定义一个Form类,只带有一个字段(your_name)。我们已经对这个字段使用一个友好的标签,
    
    当渲染时它将出现在<label>中
    
    
    字段允许的最大长度通过max_length 定义。 它完成两件事情,首先.
    
    它在HTML 的<input> 上放置一个maxlength="100" 
    
    Form的实例具有一个is_valid() 方法,
    
    
    
    视图:
    
    发送给Django 网站的表单数据通过一个视图处理,一般和发布这个表单的是同一视图,
    
    这允许我们重用一些相同的逻辑
    
    要操作一个通过URL发布的表单,我们要在视图中实例表单。
    
    如果访问视图的是一个GET请求,它将创建一个空的表单实例并将它放置到要渲染的模板的上下文中。
    
    这是我们在第一次访问该URL时预期发生的情况。

  • 相关阅读:
    【转+补充】在OpenCV for Android 2.4.5中使用SURF(nonfree module)
    Delphi StarOffice Framework Beta 1.0 发布
    Angular ngIf相关问题
    angularjs文档下载
    公众号微信支付开发
    公众号第三方平台开发 教程六 代公众号使用JS SDK说明
    公众号第三方平台开发 教程五 代公众号处理消息和事件
    公众号第三方平台开发 教程四 代公众号发起网页授权说明
    公众号第三方平台开发 教程三 微信公众号授权第三方平台
    公众号第三方平台开发 教程二 component_verify_ticket和accessToken的获取
  • 原文地址:https://www.cnblogs.com/hzcya1995/p/13349398.html
Copyright © 2011-2022 走看看