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

26 篇文章 1 订阅

为上次要求开发的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%}

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

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值