1.html表单概述
Django开发的是动态Web服务,而非单纯提供静态页面。动态服务的本质在于和用户进行互动,接收用户的输入,根据输入的不同,返回不同的内容给用户。返回数据是我们服务器后端做的,而接收用户输入就需要靠HTML表单。表单<form>...</form>可以收集其内部标签中的用户输入,然后将数据发送到服务端。
一个HTML表单必须指定两样东西:
- 目的地:用户数据发送的目的URL
- 方式:发送数据所使用的HTTP方法
例如,Django Admin站点的登录表单包含几个<input>元素:type="text"用于用户名,type="password"用于密码,type="submit"用于“登录"按钮。它还包含一些用户看不到的隐藏的文本字段,Django 使用它们来提高安全性和决定下一步的行为。它还告诉浏览器表单数据应该发往<form>的action属性指定的URL:/admin/,而且应该使用method属性指定的HTTP post方法发送数据。当点击<input type="submit" value="Log in">元素时,数据将发送给/admin/。
html源码如下:
<form action="/admin/login/?next=/admin/" method="post" id="login-form"> <input type='hidden' name='csrfmiddlewaretoken' value='NNHZaDVJGduajNMECXygKZkAt8vyEcw9HS2qm2Vdf7brDZrA0qK1R0I7M2p3TKcs' /> <div class="form-row"> <label class="required" for="id_username">用户名:</label> <input type="text" name="username" autofocus maxlength="254" required id="id_username" /> </div> <div class="form-row"> <label class="required" for="id_password">密码:</label> <input type="password" name="password" required id="id_password" /> <input type="hidden" name="next" value="/admin/" /> </div> <div class="submit-row"> <label> </label><input type="submit" value="登录" /> </div> </form>