django创建项目案例1详细展示05

简介: 接着上一个django创建项目案例1的04继续如下:定义show.html模板目录如下: show.html代码如下: 在模板中访问对象成员时,都以属性的方式访问,即方法也不能加括号
  • 接着上一个django创建项目案例1的04继续如下:

定义show.html模板目录如下:

image

show.html代码如下:

  • 在模板中访问对象成员时,都以属性的方式访问,即方法也不能加括号
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<ul>
    {%for hero in list%}
    <li>{{hero.hname}}</li>
    {%endfor%}
</ul>
</body>
</html>

在hero info里随意添加内容如图:

image
image

使用模板

  • 编辑views.py文件,在方法中调用模板代码如下:
#coding:utf-8
from django.shortcuts import render
from django.http import *
from .models import *
# from django.template import RequestContext,loader

# Create your views here.
def index(request):
    # temp = loader.get_template('booktest/index.html')
    # return HttpResponse(temp.render())
    bookList=BookInfo.objects.all()
    context={'list':bookList}
    return render(request,'booktest/index.html',context)

def show(request,id):
    book=BookInfo.objects.get(pk=id)
    herolist=book.heroinfo_set.all()
    context={'list':herolist}
    return render(request,'booktest/show.html',context)

知识点介绍

去除模板的硬编码

  • 在index.html模板中,超链接是硬编码的,此时的请求地址为“127.0.0.1/1/”
<a href="{{book.id}}">
  • 看如下情况:将urlconf中详细页改为如下,链接就找不到了
url(r'^book/([0-9]+)/$', views.detail),
  • 此时的请求地址应该为“127.0.0.1/book/1/”
  • 问题总结:如果在模板中地址硬编码,将来urlconf修改后,地址将失效
  • 解决:使用命名的url设置超链接
  • 修改test1/urls.py文件,在include中设置namespace
url(r'^admin/', include(admin.site.urls, namespace='booktest')),
  • 修改booktest/urls.py文件,设置name
url(r'^book/([0-9]+)/$', views.detail, name="detail"),
  • 修改index.html模板中的链接
<a href="{%url 'booktest:detail' book.id%}">

Render简写

  • Django提供了函数Render()简化视图调用模板、构造上下文
  • 修改booktest目录下的urls.py文件代码目录如下:
    image

代码如下:

#coding:utf-8
from django.conf.urls import url
from . import views


urlpatterns=[
    url(r'^$',views.index),
    url(r'^(\d+)$',views.show)
]
  • 然后运行python manage.py runserver

  • 效果图如下:
    image

image
image

目录
相关文章
|
3月前
|
SQL 数据库 索引
Django MTV - 模型层 - (专题)知识要点与实战案例
Django MTV - 模型层 - (专题)知识要点与实战案例
31 0
|
6月前
|
存储 分布式数据库 数据库
Django项目中使用Hbase的方法
Django项目中使用Hbase的方法
|
3月前
|
搜索推荐 算法 前端开发
美食物管理与推荐系统Python+Django网站开发+协同过滤推荐算法应用【计算机课设项目推荐】
美食物管理与推荐系统Python+Django网站开发+协同过滤推荐算法应用【计算机课设项目推荐】
98 4
美食物管理与推荐系统Python+Django网站开发+协同过滤推荐算法应用【计算机课设项目推荐】
|
1月前
|
数据采集 存储 数据处理
Python爬虫在Django项目中的数据处理与展示实例
Python爬虫在Django项目中的数据处理与展示实例
|
3月前
|
SQL 前端开发 JavaScript
Django零基础-快速了解基本框架笔记-附案例
Django零基础-快速了解基本框架笔记-附案例
37 0
|
3月前
|
安全 JavaScript 搜索推荐
【实测】记一次用windows11家庭中文版部署django+vue项目的踩坑之旅
【实测】记一次用windows11家庭中文版部署django+vue项目的踩坑之旅
|
4月前
|
算法 Docker Python
Python【算法中心 03】Docker部署Django搭建的Python应用流程实例(Docker离线安装配置+Django项目Docker部署)
Python【算法中心 03】Docker部署Django搭建的Python应用流程实例(Docker离线安装配置+Django项目Docker部署)
59 0
|
4月前
|
算法 Java Python
Python【算法中心 01】Web框架Django入门(安装+项目创建+应用创建+服务启动)Python搭建算法中心后台实例分享
Python【算法中心 01】Web框架Django入门(安装+项目创建+应用创建+服务启动)Python搭建算法中心后台实例分享
47 0
|
4月前
|
Python
如何在 Django 中使用 MVT 创建基本项目?
如何在 Django 中使用 MVT 创建基本项目?
15 0
|
4月前
|
存储 前端开发 关系型数据库
Django 项目 MVT 结构
Django 项目 MVT 结构
43 1