博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
django+sqlite进行web开发(二)
阅读量:5101 次
发布时间:2019-06-13

本文共 2516 字,大约阅读时间需要 8 分钟。

模板

前面的例子中,我们是直接将HTML写在了Python代码中,这种写法并不可取。我们需要使用模板技术将页面设计和Python代码分离。

模板通常用于产生HTML,但是Django的模板也能产生任何基于文本格式的文档。

参考http://djangobook.py3k.cn/2.0/chapter04/,对以下例子模板:

Ordering notice

Ordering notice

Dear {

{ person_name }},

Thanks for placing an order from {

{ company }}. It's scheduled toship on {
{ ship_date|date:"F j, Y" }}.

Here are the items you've ordered:

    {% for item in item_list %}
  • {
    { item }}
  • {% endfor %}
{% if ordered_warranty %}

Your warranty information will be included in the packaging.

{% else %}

You didn't order a warranty, so you're on your own when the products inevitably stop working.

{% endif %}

Sincerely,

{
{ company }}

  • 用两个大括号括起来的文字(例如 {
    { person_name }} )被成为变量。意味着在此处插入指定变量的值。
  • 被大括号和百分号包围的文本(例如 {% if ordered_warranty %} )是模板标签,通知模板系统完成耨写工作的标签。这个例子中有包含if和for两种标签。
  • if标签就是类似Python中的if语句;而for标签就是类似Python中的for语句。
  • 这个例子中还使用了filter过滤器((例如 {
    { ship_date|date:"F j, Y" }}),它是一种最便捷的转换变量输出格式的方式。

使用模板系统

在Python代码中使用Django模板的最基本方式如下:

  • 可以用原始的模板代码字符串创建一个 Template 对象;
  • 调用模板对象的render方法,并且传入一套变量context。模板中的变量和标签会被context值替换。

例子如下:

>>> from django import template>>> t = template.Template('My name is {
{ name }}.')>>> c = template.Context({'name': 'Adrian'})>>> print t.render(c)My name is Adrian.>>> c = template.Context({'name': 'Fred'})>>> print t.render(c)My name is Fred.

创建模板文件:

我们先给我们的testapp添加一个add视图,即在views.py中添加:

def add(request):    return render(request, 'add.html')

在testapp目录下新件一个templates文件夹,里面新建一个add.html。默认情况下,Django会默认找到app目录下的templates文件夹中的模板文件。

然后在add.html中写一些内容:

    欢迎光临Just Test

更新url配置,即在urls.py中添加:

from testapp.views import addurlpatterns = [ ......    url(r'^add/$', add),]

重启服务后便可以访问http://127.0.0.1:8000/add/

接下来尝试在html文件中放入动态内容。

显示一个基本的字符串在网页上。

views.py:

def add(request):    string = "这是传递的字符串"    return render(request, 'add.html', {'string': string})

即向add.html传递一个字符串名称为string。在字符串中这样使用:

add.html

{
{ string }}

使用for循环显示list

修改views.py:

def add(request):    testList = ["Python", "C++", "JAVA", "Shell"]    return render(request, 'add.html', {'testList': testList})

修改add.html:

{% for i in testList %}    {
{i}} {% endfor %}

显示字典中内容

修改views.py:

def add(request):    testDict = {"1":"Python", "2":"C++", "3":"JAVA", "4":"Shell"}    return render(request, 'add.html', {'testDict': testDict})

修改add.html:

{% for key,value in testDict.items %}        {
{key}} : {
{value}} {% endfor %}

更多有用的操作可以参考https://code.ziqiangxuetang.com/django/django-template2.html

转载于:https://www.cnblogs.com/xl2432/p/10495801.html

你可能感兴趣的文章
ad logon hour
查看>>
获得进程可执行文件的路径: GetModuleFileNameEx, GetProcessImageFileName, QueryFullProcessImageName...
查看>>
证件照(1寸2寸)拍摄处理知识汇总
查看>>
罗马数字与阿拉伯数字转换
查看>>
Eclipse 反编译之 JadClipse
查看>>
Python入门-函数
查看>>
[HDU5727]Necklace(二分图最大匹配,枚举)
查看>>
距离公式汇总以及Python实现
查看>>
设计模式之装饰者模式
查看>>
一道不知道哪里来的容斥题
查看>>
Blender Python UV 学习
查看>>
window添加右键菜单
查看>>
入手腾龙SP AF90mm MACRO
查看>>
python学习4 常用内置模块
查看>>
Window7上搭建symfony开发环境(PEAR)
查看>>
ResolveUrl的用法
查看>>
Linux内核态、用户态简介与IntelCPU特权级别--Ring0-3
查看>>
第23月第24天 git命令 .git-credentials git rm --cached git stash clear
查看>>
java SE :标准输入/输出
查看>>
一些方便系统诊断的bash函数
查看>>