您的位置:首页 > 编程语言 > Go语言

Django自学习8

2016-01-12 10:44 302 查看
模板和表单处理

模板:

Django的模板语言的设计是给前端设计师的,他们不一定是程序员。Django程序员可以通过可扩展标签(tags)和过滤器(filter)系统来扩展模板语言的逻辑结构。虽然模板系统是用来生成HTML,不过他并没有被绑定给HTML,贰拾可以通过用来生成log文件 或者Email正文以及CSV文件等任何文本格式。

一个模板的context基本上是一个包含键对值的字典,在渲染的时候表示一个类似字典的Context对象。

大多数模板语言都由单独的命令和模块级的命令,通常是逻辑命令:“if”或者“for”等。Django的模块语言有两个约定用法,都和大括号有关。变量的输出是双大括号{{   }},其他的是用标签({% command%})。这里是一个渲染器类似python字典({“text“:”My Webpage“,” Object_list“:[one","two","three"]})的Context的例子。

真正强大的是标签tag:

标签从技术上讲是不定型的,可以在标签名后面跟任何形式的输入,但是内置标签和绝大多数的用户创建的标签都尽量的遵循一定的约定,通常是一列由空格分开的参数。有很多的标签参数是context变量。而且事实上大多数时候,还可以用过滤器。

模板继承是通过{%Extend%}和{%block%}两个模板标签实现的。

表单:

Django提供了forms库来把框架里的三个主要的组件联系在一起:模型里定义数据库字段,模型里显示的HTML表单标签,还有检验用户输入和显示错误信息的能力。

定义表单:

表单的处理的核心是一个和Model相似的类:Form。例子:



这是一个完整的独立表单。表单变量的接受的参数和模型里面也是非常类似的。



基于模型的表单

为了保持DRY原则,Django允许你使用热河一种特殊的Form变形ModelsForml来为任何模型类或实例取得一个Form子类。一个ModelForm和一个普通的Model一模一样,但是他包含了一个meta嵌套类(和模型类里的Meta类似),Meta类里有一个必须的属性model,它的值就是所需要的Model类。例:



一般需要在你创建的每个模型中至少创建一个ModelForm。他能够将Model类的变量复制出来到Form变量里来。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: