Django的学习进阶(二)———— name

一、问题:

在做完第一个demo的时候,由于只是基础学习,所以对于name的使用并不需要很熟练,也不用理解的很深。但是在做音乐网站的时候遇到了关于如何使用name的内容。

由于一个app中会使用到另一个app的内容,所以在使用的时候没有找到search的映射。

二、解决:

对于无法找到映射的解决办法就是,确认App中的name和在templates中的调用能够完全对应起来。

1.templates中的play.html的代码:

1 <form id="searchForm" action="{% url ‘search:search_view‘ 1 %}" method="post" target="_blank">
2             {% csrf_token %}
3             <div class="search-keyword">
4               <input id="kword" name="kword" type="text" class="keyword" maxlength="120" placeholder="音乐节"  />
5             </div>
6             <input id="subSerch" type="submit" class="search-button" value="搜 索" />
7             </form>

2.playApp中的urls.py的内容:

1 app_name = ‘play‘
2 urlpatterns = [
3     path(‘play/<int:song_id>.html‘, views.play_view, name=‘play_view‘),
4     path(‘download/<int:song_id>.html‘, views.download_view, name=‘download_view‘)
5 ]

3.playApp中的views.py的内容:

1 def play_view(request, song_id):
2     # hot search songs
3     search_song = Dynamic.objects.select_related(‘song‘).order_by(‘dynamic_search‘).all()[:6]
4     # songs information
5     song_info = Song.objects.get(song_id=int(song_id))
6     # play list
7     play_list = request.session.get(‘play_list‘, [])
1 def download_view(request, song_id):
2     # by way of the song_id to search the songs of information
3     song_info = Song.objects.get(song_id=int(song_id))
4     # add download times
5     dynamic_info = Dynamic.objects.filter(song_id=int(song_id)).first()

其中urls.py是主要的连接,.html通过{% ‘ url【app】:【name的映射】‘ 【param】 %}来完成对urls.py的映射,再通过urls.py调用views.py中的响应函数,通过这种方式就可以完成数据的交互、跳转。

三、总结:

利用name参数完成.html的响应,通过这种调用方式可以避免二义性以及.html不能准确找到对应函数的问题,使得在写.html时可以更加的准确。

因此name参数的使用显得更加的重要,可以用来指导.html文件的书写,以及完成界面的跳转和跨APP调用的问题,可见django的灵活性。

原文地址:https://www.cnblogs.com/future-dream/p/10529469.html

时间: 2024-11-01 23:59:04

Django的学习进阶(二)———— name的相关文章

django框架学习:二十四.django表单post登录案例

前言 上一篇学习了注册案例,今天学习一下post登录案例,注册是往数据库插入数据,登 录是从数据库里面查询数据. 注册页面 新建HTML文件,表单提交页面包含name,age,qq,psw,提交. 页面显示如下: 注册页面视图函数 通过表单提交的请求数据,先去数据库进行查询,如果有返回用户名已经存在,如果没有此用户名在数据库创建保存提交的数据,密码psw为了安全需要进行加密处理. 密码加密make_password from django.contrib.auth.hashers import

zuul进阶学习(二)

1. zuul进阶学习(二) 1.1. zuul对接apollo 1.1.1. Netflix Archaius 1.1.2. 定期拉 1.2. zuul生产管理实践 1.2.1. zuul网关参考部署 1.2.2. 分集群过滤管理 1.2.3. 网关生产级部署实践 1.2.4. Hystrix实时监控 1.3. zuul路由管理实践 1.3.1. Eureka自发现 1.3.2. 基于apollo 1.4. 基于网关的两层路由体系 1.4.1. 内网nginx静态配置做法 1.4.2. 内网n

【转载】JAVA学习路线二

JAVA学习路线二------------高阶面试 作者:Java高级进阶链接:https://zhuanlan.zhihu.com/p/35301291来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明出处. 1.hashcode相等两个类一定相等吗?equals呢?相反呢? 2.介绍一下集合框架? 3.hashmap hastable 底层实现什么区别?hashtable和concurrenthashtable呢? 4.hashmap和treemap什么区别?低层数据结

第六章 Django框架学习——ORM详解

第六章 Django框架学习--ORM介绍与常用方法 一.ORM介绍 二.ORM中的常用字段和参数 三.ORM中的关系字段--一对一(OneToOneField) 四.ORM中的关系字段--多对多(ManyToManyField) 五.ORM中的元信息 一.ORM介绍(部分内容前面的章节已经介绍过,此处只做简单介绍) 什么是ORM(what): ORM是通过使用描述对象和数据库之间映射的元数据,将程序中的对象自动持久化到关系数据库中. Django中的ORM: Django配置数据库 1.在se

第十一章 Django框架学习——Cookie和session

第十一章 Django框架学习--Cookie和session 一.Cookie简介 二.装饰器版登录校验 三.session简介 四.如何在CBV中使用装饰器 一.Cookie简介 什么是Cookie(what): Cookie具体指的是一段小信息,它是服务器发送出来存储在浏览器上的一组组键值对,下次访问服务器时浏览器会自动携带这些键值对,以便服务器提取有用信息. Cookie的原理:由服务器产生内容,浏览器收到请求后保存在本地:当浏览器再次访问时,浏览器会自动带上Cookie,这样服务器就能

ASP.NET MVC学习系列(二)-WebAPI请求

继续接着上文 ASP.NET MVC学习系列(一)-WebAPI初探 来看看对于一般前台页面发起的get和post请求,我们在Web API中要如何来处理. 这里我使用Jquery 来发起异步请求实现数据调用. 继续使用上一文章中的示例,添加一个index.html页面,添加对jquery的引用. 一.无参数Get请求 一般的get请求我们可以使用jquery提供的$.get() 或者$.ajax({type:"get"}) 来实现: 请求的后台Action方法仍为上篇文章中的GetU

Windows API 编程学习记录&lt;二&gt;

恩,开始写Windows API编程第二节吧. 上次介绍了几个关于Windows API编程最基本的概念,但是如果只是看这些概念,估计还是对Windows API不是很了解.这节我们就使用Windows API 让大家来了解下Windows API的用法. 第一个介绍的Windows API 当然是最经典的MessageBox,这个API 的作用就是在电脑上显示一个对话框,我们先来看看这个API的定义吧: int WINAPI MessageBox(HWND hWnd, LPCTSTR lpTe

Caliburn.Micro学习笔记(二)----Actions

Caliburn.Micro学习笔记(二)----Actions 上一篇已经简单说了一下引导类和简单的控件绑定 我的上一个例子里的button自动匹配到ViewModel事件你一定感觉很好玩吧 今天说一下它的Actions,看一下Caliburn.Micro给我们提供了多强大的支持 我们还是从做例子开始 demo的源码下载在文章的最后 例子1.无参数方法调用 点击button把textBox输入的文本弹出来 如果textbox里没有文本button不可点,看一下效果图 看一下前台代码 <Stac

Python爬虫进阶二之PySpider框架安装配置

关于 首先,在此附上项目的地址,以及官方文档 PySpider 官方文档 安装 1. pip 首先确保你已经安装了pip,若没有安装,请参照 pip安装 2. phantomjs PhantomJS 是一个基于 WebKit 的服务器端 JavaScript API.它全面支持web而不需浏览器支持,其快速.原生支持各种Web标准:DOM 处理.CSS 选择器.JSON.Canvas 和 SVG. PhantomJS 可以用于页面自动化.网络监测.网页截屏以及无界面测试等. 安装 以上附有官方安