调整form的输出格式:

  默认情况下form的格式化输出是基本table的样式的、但是django中还是为form提供发别的输出样式

  1、默认的table样式输出

<html>
<head>
<title>your name</title>
<meta charset="utf8"/>
</head> <body>
<form action={% url 'your-name' %} method="POST">
{% csrf_token %}
{{ form }} <!-- 这里采用的是django的默认输出方式 -->
<input type="submit" value="submit">
</form>
</body>
</html>
<html>
<head>
<title>your name</title>
<meta charset="utf8"/>
</head> <body>
<form action=/app01/yourname method="POST">
<input type='hidden' name='csrfmiddlewaretoken' value='gR8rgaARcg8F3GWX4igz8xE6EXTrdyr8QoVJpZVrG9Cc3ibgvz9FioIfPNTRUh59' />
<tr><th><label for="id_your_name">Your name:</label></th><td><input type="text" name="your_name" maxlength="100" required id="id_your_name" /></td></tr>
<input type="submit" value="submit">
</form>
</body>
</html>

  可以看到默认情况下输出内容以table中的行的方式输出

  2、把输出方式调整为p

<html>
<head>
<title>your name</title>
<meta charset="utf8"/>
</head> <body>
<form action={% url 'your-name' %} method="POST">
{% csrf_token %}
<!-- 用 p 的方式格式化输入 -->
{{ form.as_p }}
<input type="submit" value="submit">
</form>
</body>
</html>
<html>
<head>
<title>your name</title>
<meta charset="utf8"/>
</head> <body>
<form action=/app01/yourname method="POST">
<input type='hidden' name='csrfmiddlewaretoken' value='rDlHnoLxu991YKhlb22qVuYbSDDfCHwX1a8Zwd67Y2DyYmwECjVw5l2k3tDFjqaY' />
<!-- 用 p 的方式格式化输入 -->
<p><label for="id_your_name">Your name:</label> <input type="text" name="your_name" maxlength="100" required id="id_your_name" /></p>
<input type="submit" value="submit">
</form>
</body>
</html>

  3、以列表的方式输出

<html>
<head>
<title>your name</title>
<meta charset="utf8"/>
</head> <body>
<form action={% url 'your-name' %} method="POST">
{% csrf_token %}
<!-- 用 p 的方式格式化输入 -->
{{ form.as_ul }}
<input type="submit" value="submit">
</form>
</body>
</html>
<html>
<head>
<title>your name</title>
<meta charset="utf8"/>
</head> <body>
<form action=/app01/yourname method="POST">
<input type='hidden' name='csrfmiddlewaretoken' value='ZgjUKC9RLivh2aZKdHB3c2QOn4ZhwcMVzN6cTrurfbZO2Me3EYu9mTUXyUZHdVqW' />
<!-- 用 p 的方式格式化输入 -->
<li><label for="id_your_name">Your name:</label> <input type="text" name="your_name" maxlength="100" required id="id_your_name" /></li>
<input type="submit" value="submit">
</form>
</body>
</html>

对form输出格式的总结:

  1、{{ form }} 直接输出、这种默认的方式是以table的形式格式化的;

  2、{{ form.as_p }} 以 p 段落的方式输出;

  3、{{ form.as_ul }} 以 ul 列表的方式输出;

默认三种输出的不足:

  如果这三种django自带的输出方式满足不了你的需求、那么“老铁扎心啦!”、你可能要自己定义form的输出了、

  再这之前我们还要学习更多的关于form的东西才行

  1、form.field_name:

<html>
<head>
<title>your name</title>
<meta charset="utf8"/>
</head> <body>
<form action={% url 'your-name' %} method="POST">
{{ form.your_name }}
</form>
</body>
</html>

  可以看到模板中直接对form.field_name 进行打印、输出如下:

<html>
<head>
<title>your name</title>
<meta charset="utf8"/>
</head> <body>
<form action=/app01/yourname method="POST">
<input type="text" name="your_name" maxlength="100" required id="id_your_name" />
</form>
</body>
</html>

  扎心啦、一个字段就直接对应一个 input标签。

  2、form.field_name.lable:

<html>
<head>
<title>your name</title>
<meta charset="utf8"/>
</head> <body>
<form action={% url 'your-name' %} method="POST">
{{ form.your_name.label}}
</form>
</body>
</html>

  生成的代码如下

<html>
<head>
<title>your name</title>
<meta charset="utf8"/>
</head> <body>
<form action=/app01/yourname method="POST">
Your name
</form>
</body>
</html>

  3、form.field_name.label_tag:

<html>
<head>
<title>your name</title>
<meta charset="utf8"/>
</head> <body>
<form action={% url 'your-name' %} method="POST">
{{ form.your_name.label_tag}}
</form>
</body>
</html>
<html>
<head>
<title>your name</title>
<meta charset="utf8"/>
</head> <body>
<form action=/app01/yourname method="POST">
<label for="id_your_name">Your name:</label>
</form>
</body>
</html>

  4、form.field_name.id_for_label:

<html>
<head>
<title>your name</title>
<meta charset="utf8"/>
</head> <body>
<form action={% url 'your-name' %} method="POST">
{{ form.your_name.id_for_label }}
</form>
</body>
</html>
<html>
<head>
<title>your name</title>
<meta charset="utf8"/>
</head> <body>
<form action=/app01/yourname method="POST">
id_your_name
</form>
</body>
</html>

  5、form.field_name.value:

<html>
<head>
<title>your name</title>
<meta charset="utf8"/>
</head> <body>
<form action={% url 'your-name' %} method="POST">
{{ form.your_name.value }}
</form>
</body>
</html>
<html>
<head>
<title>your name</title>
<meta charset="utf8"/>
</head> <body>
<form action=/app01/yourname method="POST">
None
</form>
</body>
</html>

    

  

----

Django form入门详解--2的更多相关文章

  1. Django form入门详解--1

     form在django中的作用: 1.可以用于自动生成form的html 2.数据校验 3.与model一在一起使用.可以大的方便数据驱动型网站的开发 编程中有许多的东西是“不可描述”的.只有动手去 ...

  2. django session入门详解

    概括性的讲: 1.django默认是打开对session的支持的 2.默认情况下session相关的数据会保存在数据库中.浏览器端只保存了session id session 的科普: 1.动态网站中 ...

  3. Linq之旅:Linq入门详解(Linq to Objects)

    示例代码下载:Linq之旅:Linq入门详解(Linq to Objects) 本博文详细介绍 .NET 3.5 中引入的重要功能:Language Integrated Query(LINQ,语言集 ...

  4. SQL注入攻防入门详解

    =============安全性篇目录============== 本文转载 毕业开始从事winfrm到今年转到 web ,在码农届已经足足混了快接近3年了,但是对安全方面的知识依旧薄弱,事实上是没机 ...

  5. SQL注入攻防入门详解(2)

    SQL注入攻防入门详解 =============安全性篇目录============== 毕业开始从事winfrm到今年转到 web ,在码农届已经足足混了快接近3年了,但是对安全方面的知识依旧薄弱 ...

  6. Quartz 入门详解

    Quartz是OpenSymphony开源组织在Job scheduling领域又一个开源项目,它可以与J2EE与J2SE应用程序相结合也可以单独使用.Quartz可以用来创建简单或为运行十个,百个, ...

  7. Redis快速入门详解

    Redis入门详解 Redis简介 Redis安装 Redis配置 Redis数据类型 Redis功能 持久化 主从复制 事务支持 发布订阅 管道 虚拟内存 Redis性能 Redis部署 Redis ...

  8. [转]SQL注入攻防入门详解

    原文地址:http://www.cnblogs.com/heyuquan/archive/2012/10/31/2748577.html =============安全性篇目录============ ...

  9. [置顶] xamarin android toolbar(踩坑完全入门详解)

    网上关于toolbar的教程有很多,很多新手,在使用toolbar的时候踩坑实在太多了,不好好总结一下,实在浪费.如果你想学习toolbar,你肯定会去去搜索androd toolbar,既然你能看到 ...

随机推荐

  1. SHOW INDEXES

    SHOW INDEXES FROM user \G Table: user Non_unique: 1 [1表示包含重复值,0表示不包含.] Key_name: indsum_3id Seq_in_i ...

  2. k-means算法MATLAB和opencv代码

    上一篇博客写了k-means聚类算法和改进的k-means算法.这篇博客就贴出相应的MATLAB和C++代码. 下面是MATLAB代码,实现用k-means进行切割: %%%%%%%%%%%%%%%% ...

  3. 高仿美团主界面&lt;一&gt;

    声明:本demo还未完好,正在持续更新中... 先上图吧: 这个小demo资源图片全是用青花瓷抠出来的,如今仅仅是完毕了 一部分. 会持续更行中. . .有兴趣的朋友能够关注我,我们一起coding, ...

  4. SpringMVC学习笔记六:使用Formatter解析或格式化数据

    转载请注明原文地址:http://www.cnblogs.com/ygj0930/p/6832903.html      Converter可以将一种类型转换成另一种类型,是任意Object之间的类型 ...

  5. 排序基础之归并排序、快排、堆排序、希尔排序思路讲解与Java代码实现

    转载请注明原文地址:http://www.cnblogs.com/ygj0930/p/6594855.html  一:归并排序==通过中间值进行左右划分递归,然后调用合并函数对左右递归的结果进行合并( ...

  6. APache PDFbox API使用(1)----简单介绍

    因为项目的须要.近期在学习APache  PDFbox API,Apache PDFbox API是Apache Java 开源社区中个一个项目,其受Apache 版权 V2的保护,其提供了以下的功能 ...

  7. 基于py3和pymysql查询某时间段的数据

    #python3 #xiaodeng #基于py3和pymysql查询某时间段的数据 import pymysql conn=pymysql.connect(user='root',passwd='r ...

  8. C++中public、protected及private使用方法

    1.类的一个特征就是封装,public和private作用就是实现这一目的.所以: 用户代码(类外)能够訪问public成员而不能訪问private成员:private成员仅仅能由类成员(类内)和友元 ...

  9. 一颗可靠的时间胶囊:苹果AirPort Time Capsule测评

    http://sspai.com/24181/ 如何从 Time Machine 备份恢复数据? AirPort Time Capsule能轻松完成备份,自然也少不了方便地恢复备份.一般常见的恢复备份 ...

  10. 强力密码暴力破解工具:hydra

    语法: hydra [[[-l LOGIN|-L FILE] [-p PASS|-P FILE]] | [-C FILE]] [-e nsr] [-o FILE] [-t TASKS] [-M FIL ...