当前位置: 首页 > 编程日记 > 正文

django 链接地址匹配流程

前提:

代码结构

步骤一:

下面为某个网页的链接地址

<body>
{% if latest_article_list %}<ul>{% for article in latest_article_list %}<li><a href="/blog/p/{{ article.id }}/">{{ article.title }} </a></li>{% endfor %}</ul>
{% else %}<p>No articles are available.</p>
{% endif %}

其中的链接地址为:

<a href="/blog/p/{{ article.id }}/">{{ article.title }} </a>

步骤二:
点击链接后,进行URL匹配。

第一层 mysite中的url.py
urlpatterns = [url(r'^admin/', include(admin.site.urls)),url(r'^blog/',include('blog.urls'))
]

第二层 blog中的url.py

urlpatterns = [url(r'^$', views.index, name='index'),url(r'^p/(?P<article_id>[0-9]+)/$', views.detail,name='detail')
]

步骤三:

然后调用view.detail  (在view.py中)

def detail(request, article_id):article = get_object_or_404(Article, pk=article_id)return render(request, 'blog/p/detail.html', {'article': article})

步骤四:

然后返回 目录 blog/p/detail.html

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>ARTICLE</title>
</head>
<body>
<h1>{{ article.title }}</h1>
<p>{{ article.content }}</p>
</body>
</html>

根据article.id值在数据库中查找相应字段,填充article.title和article.content的具体值。

效果:

需要注意的是地址栏为:

而不是detail.html的目录

移除硬编码

html文件中的链接   <a href="/blog/p/{{ article.id }}/">{{ article.title }} </a>
blog中的url.py文件有name参数
urlpatterns = [url(r'^$', views.index, name='index'),url(r'^p/(?P<article_id>[0-9]+)/$', views.detail,name='detail')
]
所以使用{% url %}标签,链接改为
<a href="{% url 'detail'  article.id }">{{ article.title }} </a>

处理多个项目出现相同的detail,使用命名空间

在mysite的url中设置

urlpatterns = [
url(r'^admin/', include(admin.site.urls)),
url(r'^blog/',include('blog.urls', namespace='blog'))
]
链接改为
<a href="{% url 'blog:detail'  article.id }">{{ article.title }} </a>






转载于:https://www.cnblogs.com/hb91/p/5410660.html

相关文章:

【Datawhale-Python】Task1

1.环境搭建 略&#xff08;见之前博客&#xff09; 2.python初体验 ①print&#xff08;&#xff09; 略 ②input&#xff08;&#xff09; Python3.x 中 input() 函数接受一个标准输入数据&#xff0c;返回为 string 类型。 >>> ainput() 2 >>> a 23.…

Android高手速成

第一部分 个性化控件(View) http://www.cnblogs.com/huwei0814/p/3796659.html 第二部分 工具库 http://www.cnblogs.com/huwei0814/p/3796670.html 第三部分 优秀项目 http://www.cnblogs.com/huwei0814/p/3796673.html 第四部分 开发工具及测试工具 http:/…

Texlive安装与环境变量配置

下载安装&#xff1a;https://www.jianshu.com/p/25896cc05cb4 去官网下载速度很快 环境变量配置&#xff1a;https://www.jianshu.com/p/f8f6c255098c

2018-3-7论文网络评论中非结构化信息的表示与研究--------实验分析

数据来源&#xff1a; &#xff08;1&#xff09;电子商务网站提供的网路评论 &#xff08;2&#xff09;专门提供网络评论交流平台的网络 &#xff08;3&#xff09;文章中使用的数据为网上某商城关于“某品牌中的一种型号纸尿裤&#xff08;价格75RMB&#xff09;”的2526…

3dmax Vray建筑可视化入门学习教程

面向初学者的3Ds Max Vray最佳Archviz可视化课程 从安装到最终图像的一切都将从头开始教授&#xff0c;不需要任何经验 大小解压后&#xff1a;3.25G 时长4h 6m 1280X720 MP4 语言&#xff1a;英语中英文字幕&#xff08;根据原英文字幕机译更准确&#xff09; 课程获取&…

javascript与浏览器学习(一)

待学习………… 20160421 标题&#xff1a;JavaScript中浏览器兼容问题 博客地址&#xff1a;http://www.cnblogs.com/DF-fzh/p/5408241.html 简单学习。 转载于:https://www.cnblogs.com/Tpf386/p/5416390.html

idea运行jsp显示源码_基于jsp+mysql+Spring+mybatis的SSM在线个人PC电脑商城平台网站系统...

运行环境: 最好是java jdk 1.8&#xff0c;我们在这个平台上运行的。其他版本理论上也可以。IDE环境&#xff1a; Eclipse,Myeclipse,IDEA都可以tomcat环境&#xff1a; Tomcat 7.x,8.x,9.x版本均可硬件环境&#xff1a; windows 7/8/10 1G内存以上主要功能说明&#xff1a; 管…

Dosbox+Masm汇编语言

一篇很不错的教程: https://bingyishow.top/Technical-article/54.html

hypervisor简介

什么是hypervisorhypervisor为操作系统提供独立的虚拟硬件平台&#xff0c;而虚拟硬件平台反过来又提供对底层机器的虚拟的完整访问。hypervisor之于操作系统类似于操作系统之于进程。虚拟化和hypervisor关于什么是虚拟化&#xff0c;请参考我的另一篇博客《虚拟化技术介绍》&a…

非结构化信息-》半结构化-》结构化-》关联数据体系-》数据挖掘-》故事化呈现-》决策导向

非结构化数据介绍来源&#xff1a; 非结构化信息_百度百科 https://baike.baidu.com/item/%E9%9D%9E%E7%BB%93%E6%9E%84%E5%8C%96%E4%BF%A1%E6%81%AF/2002521?fraladdin 总的来说&#xff0c;目前非结构化数据越来越多&#xff0c;怎么提取其中价值信息&#xff1f;&#xff…

元宇宙:基础-虚拟现实栈开发和虚拟土地

元宇宙——如何使用NFTs构建虚拟角色、虚拟环境、空间特征、虚拟土地的沉浸式购买 你会学到什么 元宇宙:从虚拟现实到虚拟双胞胎的基本概念 元宇宙:全栈开发&#xff0c;包括头像、传送、互操作性和隐私 元宇宙:如何建立元宇宙(地平线市场)景观&#xff0c;娱乐&#xff0c;游…

oracle数据库连接设置配置文件

转载于:https://www.cnblogs.com/Ly426/p/5416588.html

python3.7.1安装教程详细_CentOS 7 安装python3.7.1的方法及注意事项

安装wget yum -y install wget 创建一个download目录用于下载各种安装包 mkdir download 切换到刚创建的download目录中 cd download 下载python3.7.1 解压 tar -zxvf Python-3.7.1.tgz 切换到刚刚解压得到得文件夹 cd Python-3.7.1 安装配置 ./configure 注意&#xff0c;我这…

Docker部署SpringBoot项目详细部署过程

​ Docker可比喻成一个装应用的容器,将应用及其依赖文件、数据等打包在容器内,直接运行容器即可把应用运行起来,而无需关心环境配置问题。​ 本文记录个人学习Docker的总结内容,安装、配置和部署等内容,在过程中,应注意命令不要写错,加上Docker插件等问题,若出现理解不到位的地方,请多指出。

简单图文配置golang+vscode【win10/centos7+golang helloworld+解决install failed等情况】

博客目录&#xff08;阅读时间&#xff1a;10分钟&#xff09;一.win100.系统环境1. win10配置golang环境①下载相关软件②创建gowork工作空间③配置环境变量&#xff08;GOPATHPATH&#xff09;④验证环境配置结果2. win10配置vscode go环境①安装vscode的go插件②尝试运行③v…

安卓 画板 学习笔记

2019独角兽企业重金招聘Python工程师标准>>> 代码片段 package com.tang.paint;import java.io.File; import java.io.FileNotFoundException; import java.io.FileOutputStream;import android.app.Activity; import android.app.ActionBar; import android.app.Fr…

2018-3-7 Hadoop简介1(名字的由来,以及基本的结构)

问题一&#xff1a;什么是云计算&#xff1f; 实际上是提供的一种服务&#xff0c;这个服务的特点是&#xff1f; 主要是按需分配 云计算_百度百科 https://baike.baidu.com/item/%E4%BA%91%E8%AE%A1%E7%AE%97/9969353?fraladdin 什么是大数据&#xff1f…

MAYA 2022基础入门学习教程

流派:电子学习| MP4 |视频:h264&#xff0c;1280720 |音频:AAC&#xff0c;48.0 KHz 语言&#xff1a;英语中英文字幕&#xff08;根据原英文字幕机译更准确&#xff09;|大小解压后:3.41 GB |时长:4.5小时 包含第一部分和第二部分课程 课程获取&#xff1a;MAYA 2022基础入门学…

[Ubuntu 22.04] Docker安装及使用

容器的生命周期由用户控制,用户可以选择手动删除容器或让其保留在系统中以供之后使用。选项允许你在容器内部创建一个交互式的终端会话,使你可以像在本地终端一样与容器进行交互。你可以在容器内执行命令,查看输出并输入命令。镜像拉取完成后,可以使用以下命令创建并启动一个基于 Ubuntu 20.04 镜像的容器。列出所有正在运行的容器,并显示它们的容器ID、镜像、命令、创建时间、状态等信息。以下命令可以中止容器,改命令将向容器发送一个停止信号,使其正常停止并退出。这将显示所有容器的列表,包括正在运行的和已停止的容器。

Docker ps命令

docker ps命令可以用来列出Docker容器相关信息。docker ps 命令可以用来列出容器相关信息。

Chain of Responsibility 责任链模式 MD

责任链模式 简介 责任链模式是一种对象的行为模式。在责任链模式里&#xff0c;很多对象由每一个对象对其下家的引用而连接起来形成一条链&#xff0c;请求在这个链上【传递】&#xff0c;直到链上的某一个对象决定处理此请求。发出这个请求的客户端并不知道链上的哪一个对象最…

python tkinter选择路径控件_Python3 Tkinter选择路径功能的实现方法

效果基于Python3。 在自己写小工具的时候因为这个功能纠结了一会儿&#xff0c;这里写个小例子&#xff0c;供有需要的参考。 小例子&#xff0c;就是点击按钮打开路径选择窗口&#xff0c;选择后把值传给Entry输出。 效果预览 这是选择前&#xff1a;选择&#xff1a;选择后&a…

Golang TDD实践报告:快速排序Quick Sort

Golang TDD实践报告&#xff1a;快速排序Quick Sort 【阅读时间&#xff1a;约5分钟】0.项目需求1.编写符合项目输入输出的一个测试2.尝试运行测试3.先使用最少的代码来让失败的测试先跑起来4.编写足够的代码以使测试通过5.重构编写完整的代码以提高效率6.基准测试TDD是测试驱动…

quick-cocos2d-x游戏开发【3】——display.newSprite创建向导

游戏嘛。没有图片没有图片可以称为你的游戏&#xff0c;所以&#xff0c;我们看一下使用quick如何创建精灵的方式。quick的api精灵族的创造仍然是非常具体的解释。因此&#xff0c;建立非常easy。display.newSprite(filename, x, y, params) filename&#xff1a;精灵文件名称 …

JSON http://www.cnblogs.com/haippy/archive/2012/05/20/2509329.html

js: JSON.stringify(idinfo)//将对象转化为 JSON串 //查询后为将json串赋值给表单 function _form1_load() { AOS.ajax({ url: getForm1Info.jhtml, ok: function (data) {//{cardno_5300129, sex_2, age_如花, name_凤} …

mysql update 并发 慢_MySQL跑在CentOS 6 和 7上的性能比较

点击蓝色“程序猿DD”关注我哟加个“星标”&#xff0c;不忘签到哦来源&#xff1a;yangyidba关注我&#xff0c;回复口令获取可获取独家整理的学习资料&#xff1a;- 001 &#xff1a;领取《Spring Boot基础教程》- 002 &#xff1a;领取《Spring Cloud基础教程》一 前言计划今…

远程控制virtual box虚拟机系统的三种方式

远程控制virtual box虚拟机系统的三种方式【阅读时间&#xff1a;5分钟】1.使用现有的远程控制软件2.使用SSH连接3.使用远程桌面控制虚拟机系统对于把虚拟机安装在寝室笔记本的人来说&#xff0c;能够远程控制虚拟机的系统是很重要的一件事&#xff0c;而远程控制虚拟机的方式一…

Kernel那些事儿之内存管理(7) --- Slab(上)

前面讲的buddy system算法&#xff0c;分配内存的最小单位是一个页面&#xff08;例如 4K&#xff09;。这对于大的内存申请比较适用。可是实际生活中&#xff0c;Kernel经常需要分配小的内存空间&#xff0c;比如几十个字节&#xff0c;这个时候怎么办呢&#xff1f;不同的人可…

Vyond制作2D动画学习教程

Vyond为2D动画提供了极其简单的分解视频创建过程。 你会学到什么 课程获取&#xff1a;Vyond制作2D动画学习教程-云桥网 您将学习如何为2d动画制作画外音 您将学习如何使用Vyond轻松创建精彩的动画视频 流派:电子学习| MP4 |视频:h264&#xff0c;1280720 |音频:AAC&#xf…

Blender3.0电影级别CG场景制作视频教程

Blender 3.0的电影场景制作–8小时以上的主教程 三本教程合三为一 你会学到什么 你将学习如何在Blender中建模 你将学习如何在Blender中创建更复杂的纹理 你将学习如何创建一个场景&#xff0c;设置摄像机和灯光 你将在Blender中学习动画的基础知识 你将会学到如何在Blender中…