为上次要求开发的Pizzeria项目添加一个页面显示比萨名称,为这些名称设置链接,使之跳转到一个显示相应比萨配料的页面。

准备工作:
1.在learning_pizza项目中打开命令行界面
2.激活虚拟环境:lp_env\Scripts\activate
3.运行服务器:python manage.py runserver
4.打开网址:http://localhost:8000

【定义URL】

1.打开learning_pizza/urls,修改为

from django.contrib import admin
from django.urls import path
from django.conf.urls import include
urlpatterns = [path('admin/', admin.site.urls),path(r'',include(('learning_pizzas.urls','learning_pizzas'),namespace='learning_pizzas')),
]

2.新建learning_pizzas/urls.py,内容为

from django.conf.urls import url
from . import views
urlpatterns=[#主页url(r'^$',views.index,name='index'),#展示pizzas页面url(r'^pizzas/$',views.pizzas,name='pizzas'),#展示单个pizza的配料的详情页url(r'^pizzas/(?P<pizza_id>\d+)/$',views.pizza,name='pizza'),
]

【编写视图】

1.打开learning_pizzas/views.py,修改为

from django.shortcuts import render
from .models import Pizza
#from .models import Topping
# Create your views here.
def index(request):#显示主页return render(request,'learning_pizzas/index.html')def pizzas(request):#显示展示所有pizzas页pizzas= Pizza.objects.order_by('date_added')context={'pizzas':pizzas}return render(request,'learning_pizzas/pizzas.html',context)def pizza(request,pizza_id):#显示展示某一个pizza的配料的页面pizza=Pizza.objects.get(id=pizza_id)toppings=pizza.topping_set.order_by('date_added')context={'pizza':pizza,'toppings':toppings}return render(request,'learning_pizzas/pizza.html',context)

注:date_added前面加个-就会把最新的时间排在前面
注:虽然写着pizza_id,但实际上pizza.id才是id号,前者只是一个自己设置的变量。

【编写模板】

1.在learning_pizzas/templates/learning_pizzas/下新建base.html
里面准备放置每个页面都有的链接,内容设置为

<p><a href="{% url 'learning_pizzas:index' %}">Learning_pizzas</a> -<a href="{% url 'learning_pizzas:pizzas' %}">Pizzas</a>
</p>
{%block content%}{%endblock content%}

2.在learning_pizzas/templates/learning_pizzas/下新建pizzas.html
内容为:

{% extends "learning_pizzas/base.html" %}
{% block content %}<p>这里是展示所有Pizzas的页面</p><ul>{%for pizza in pizzas%}<li><a href="{%url 'learning_pizzas:pizza' pizza.id%}">{{pizza}}</a><a>完成于{{pizza.date_added}}</a></li>{%empty%}<li>还没有添加Pizza</li>{%endfor%}</ul>
{%endblock content%}

3.打开learning_pizzas/templates/learning_pizzas/下的index.html
修改为

{%extends "learning_pizzas/base.html"%}
{%block content%}
<p>这是pizza主页</p>
{%endblock content%}

4.在learning_pizzas/templates/learning_pizzas/下新建pizza.html
内容为

{%extends "learning_pizzas/base.html"%}
{%block content%}<p>这里是展示你所选Pizza:{{pizza}}的配料的页面</p><ul>{%for topping in toppings%}<li><p>{{topping.date_added|date:'M d,Y H:i'}}</p><p>{{topping.name|linebreaks}}</p></li>{%empty%}<li>还没有给这个Pizza添加配料,快去添加配料吧</li>{%endfor%}</ul>
{%endblock content%}

最后,关于{{}}和{%%},引用别人的记录如下

模版的常用语法只需要记两种特殊符号:
{{ }}和 {% %}
变量相关的用{{}},逻辑相关的用{%%}。

第18章_Django入门——【3.创建网页主页】与【4.创建网页其他页面】的比萨店作业相关推荐

  1. python编程从入门到实践 第18章Django入门 2022年最新

    说明:这篇文章只是记录自己自学本书的一个痕迹,日后来看作为一个念想.至于做为公开,是希望对一些同样跟我一样的朋友有一点点帮助,当然我本人就是小白,帮助可能也不大哈哈. 这篇文章记录了<pytho ...

  2. 第 18 章 Django 入门

    当今的网站实际上都是富应用程序(rich application),就像成熟的桌面应用程序一样.Python提供了一组开发Web应用程序的卓越工具.在本章中,我们将学习如何使用Django(http: ...

  3. python从入门到实践18章django存在问题_第18章 Django入门 P371

    声音简介-感谢粉丝NN娜娜小天使的打赏,此音频即日起以24小时/天,1次/小时的速度更新,直至完结~ 特别说明: 此音频仅作为更好地阅读此书的辅助工具,请大家购买正版书籍. 所有音频全部免费供大家试听 ...

  4. html网页制作教程课件,第2章 HTML入门(网页制作案例教程课件).ppt

    第2章 HTML入门 认识HTML语言的作用,了解HTML代码的编写特点 掌握查看网页代码.修改网页代码的方法 掌握HTML常用标记及其属性的用法 掌握运用HTML编写网页表格.列表.框架和实现超级链 ...

  5. 【前端实例代码】Html5+css3+JavaScript创建在线播放架子鼓电子鼓演奏网页效果!前端开发网页设计基础入门教程!超简单~

    b站视频演示效果: [前端实例代码]Html5+css3+JavaScript创建在线播放架子鼓电子鼓演奏网页效果!前端开发网页设计基础入门教程!超简单~ 效果图: 完整代码: <!DOCTYP ...

  6. python从入门到实践18章答案

    目录 前言 一.新项目 二.简短的条目 三.Django API 四.比萨店 1.创建虚拟环境.安装Django.创建项目.创建数据库.创建应用程序 2.定义模型 3.激活模型 4.向管理网站注册模型 ...

  7. Linux入门到精通:第 1 关——创建/删除新用户(第二章:Linux之用户管理)

    第 1 关--创建/删除新用户 任务描述 相关知识 Linux创建用户命令 案例演示 Linux删除用户命令 案例演示 编程要求 评测说明 任务描述 恭喜你已经完成了Linux入门的实训,接下来让我们 ...

  8. Linux入门到精通:第 1 关——创建/删除用户组(第二章:Linux之用户管理)

    第 1 关--创建/删除用户组 任务描述 相关知识 Linux创建用户组命令 案例演示一 案例演示二 Linux删除用户组命令 案例演示一 编程要求 评测说明 任务描述 恭喜你已经完成了Linux之用 ...

  9. pythondjango网页制作_Django创建网页--主页及模板

    1. 创建主页 使用Django创建网页的过程通常分三个阶段:定义URL.编写视图和编写模板 每个URL都被映射到特定的视图,视图函数获取并处理网页所需的数据 2.编写更多视图 现在在views.py ...

最新文章

  1. python分隔符的使用,在python中使用分隔符“\”拆分字符串
  2. 佩恩:京奥了不起 10年后“水落石出”
  3. 5、this调用语句必须是构造函数中的第一个可执行语句_Java 构造函数
  4. App Hub上传应用的状态说明
  5. Linux课程实践二:编译模块实现内核数据操控
  6. ASP.NET MVC5+EF6+EasyUI 后台管理系统(90)-EF 扩展操作
  7. linux的基本命令tail,Linux基本命令(示例代码)
  8. JavaScript遍历DOM
  9. TouchId iOS简明教程
  10. 含本土测量软件的Q-Vision+Kvaser CAN/CAN FD/LIN总线解决方案
  11. 软件测试专业川内大学,四川大学分析测试中心
  12. edge浏览器网页翻译失败解决方法
  13. 微软简体和繁体字体转换
  14. 报错:CMake Error at /usr/share/cmake-3.10/Modules/CMakeDetermineCCompiler.cmake:48 (message):
  15. 记录一次chown -R 777 /误操作导致vultr utunbu服务器被迫销毁
  16. 读《移山之道》——问渠哪得清如许,为有源头活水来
  17. Hibernate对象的状态和映射
  18. (Python)人民币兑换
  19. As3.0使用小技巧一
  20. Open_CV形态学运算专题 (腐蚀膨胀、开闭运算、梯度运算、顶帽运算黑帽运算 )【Python-Open_CV系列(十)】

热门文章

  1. cst计算rcs后如何导入matlab,用CST计算舰船RCS的问题?
  2. 土地利用覆被变化的概念_土地利用土地覆被变化研究概述
  3. c语言d1和f1的区别,讲点真话:当贝d1和f1区别有没有?测评哪个好?谁来分享使用心得...
  4. Hibernate 多表映射(Mybatis,Springjdbc,Hibernate ,JDBC的多表映射学习比较)
  5. 大幅提升冲浪效率,搜狗高速浏览器3.0
  6. 想要绘图效率节省储存空间?CAD内部图块该怎么创建?
  7. 基于Reworld、Roblox的团队协作
  8. 我们身边的计算机网络作文,关于网络的作文三篇
  9. Https请求报错:unable to find valid certification path to requested target
  10. Cannot find reference 'dynamic_rnn' in '__init__.py'