当前位置: 首页 > news >正文

蒲城网站建设百度竞价排名是什么意思

蒲城网站建设,百度竞价排名是什么意思,做网站那家比较好,dw网站建设的基本流程1 歌曲搜索 音乐平台的每个网页顶部都设置了歌曲搜索功能,歌曲搜索框以网页表单的形式展示,并且以POST请求方式实现歌曲搜索功能,搜索结果显示在歌曲搜索页。歌曲搜索页由项目应用search实现,首先在search的urls.py中定义路由sea…

1 歌曲搜索

音乐平台的每个网页顶部都设置了歌曲搜索功能,歌曲搜索框以网页表单的形式展示,并且以POST请求方式实现歌曲搜索功能,搜索结果显示在歌曲搜索页。歌曲搜索页由项目应用search实现,首先在search的urls.py中定义路由search。

1.1 路由定义

from django.urls import path
from .views import *
urlpatterns = [path('<int:page>.html', searchView, name='search'),
]

路由search设置了路由变量page,该变量代表某一页的页数,因为歌曲的搜索结果具有不确定性,通过对搜索结果进行分页处理可以美化和规范网页内容。路由的HTTP请求由视图函数searchView负责接收和处理,在search的views.py中定义视图函数searchView。

1.2 视图定义

from django.shortcuts import render, redirect
from django.core.paginator import Paginator
from django.core.paginator import EmptyPage
from django.core.paginator import PageNotAnInteger
from django.shortcuts import reverse
from django.db.models import Q, F
from index.models import *def searchView(request, page):if request.method == 'GET':# 热搜歌曲searchs = Dynamic.objects.select_related('song').order_by('-search').all()[:6]# 获取搜索内容,如果kword为空,就查询全部歌曲kword = request.session.get('kword', '')if kword:songs = Song.objects.filter(Q(name__icontains=kword) | Q(singer=kword)).order_by('-release').all()else:songs = Song.objects.order_by('-release').all()[:50]# 分页功能paginator = Paginator(songs, 5)try:pages = paginator.page(page)except PageNotAnInteger:pages = paginator.page(1)except EmptyPage:pages = paginator.page(paginator.num_pages)# 添加歌曲搜索次数if kword:idList = Song.objects.filter(name__icontains=kword)for i in idList:dynamics = Dynamic.objects.filter(song_id=i.id)# 判断歌曲动态信息是否存在,若存在,则在原来的基础上加1if dynamics:dynamics.update(search=F('search') + 1)# 若动态信息不存在,则创建新的动态信息else:dynamic = Dynamic(plays=0, search=1, download=0, song_id=i.id)dynamic.save()return render(request, 'search.html', locals())else:# 处理POST请求,并重定向搜索页面request.session['kword'] = request.POST.get('kword', '')return redirect(reverse('search', kwargs={'page': 1}))

当视图函数searchView接收到路由search的POST请求后,它将执行歌曲搜索过程,执行过程说明如下:

(1)当用户在歌曲搜索框输入搜索内容并单击“搜索”按钮后,程序根据网页表单的属性action所指向的路由地址发送一个POST请求,Django接收到请求后,将请求信息交给视图函数searchView进行处理。

(2)如果视图函数searchView收到一个POST请求,那么首先将请求参数kword写入会话Session进行存储,请求参数kword是歌曲搜索框的搜索内容,然后以重定向的方式访问歌曲搜索页。

(3)通过重定向访问歌曲搜索页,等同于向歌曲搜索页发送一个GET请求,视图函数searchView首先获取会话Session的数据判断Session是否存在kword。

(4)如果kword存在,就以kword作为查询条件,分别在模型Song的字段name和singer中进行模糊查询,查询结果根据模型字段release进行降序排列;如果kword不存在,就查询模型Song的所有歌曲,以模型字段release进行降序排列,并且只获取前50首的歌曲信息。

(5)将查询结果进行分页处理,以每5首歌为一页的方式进行分页。函数参数page代表某一页的页数,它也代表路由变量page。

(6)根据搜索内容kword查找匹配的歌曲,将符合匹配条件的歌曲进行遍历和判断,如果歌曲的动态信息存在,就对该歌曲的搜索次数累加1,否则为歌曲新建一条动态信息,并将搜索次数设为1。

(7)最后将变量searchs和分页对象pages传递给模板文件search.html,由模板引擎进行解析并生成相应的网页内容。

1.3 模板定义

当模板文件search.html接收到变量searchs和分页对象pages后,模板引擎对模板语法进行解析并转换成网页内容。变量searchs实现歌曲搜索框下方的热搜歌曲,分页对象pages实现当前分页的歌曲列表歌分页导航功能。

{% extends "base.html"  %}
{% load static %}
{% block link %}
<link rel="shortcut icon" href="{% static "favicon.ico" %}">
<link rel="stylesheet" href="{% static "css/common.css" %}">
<link rel="stylesheet" href="{% static "css/search.css" %}">
{% endblock %}{% block body  %}
<body><div class="header"><a href="/" class="logo"><img src="{% static "image/logo.png" %}"></a><div class="search-box"><form id="searchForm" action="{% url 'search' 1 %}" method="post">{% csrf_token %}<div class="search-keyword"><input id="kword" name="kword" type="text" class="keyword" maxlength="120"/></div><input id="subSerch" type="submit" class="search-button" value="搜 索" /></form><div id="suggest" class="search-suggest"></div><div class="search-hot-words">{% for s in searchs  %}<a target="play" href="{% url 'play' s.song.id %}" >{{ s.song.name }}</a>{% endfor  %}</div></div></div><!--end header--><div class="nav-box"><div class="nav-box-inner"><ul class="nav clearfix"><li><a href="{% url 'index' %}">首页</a></li><li><a href="{% url 'ranking' %}" target="_blank">歌曲排行</a></li><li><a href="{% url 'home' 1 %}" target="_blank">用户中心</a></li></ul></div></div><!--end nav-box--><!--wrapper--><div class="wrapper clearfix" id="wrapper"><div class="mod_songlist"><ul class="songlist__header"><li class="songlist__header_name">歌曲</li><li class="songlist__header_author">歌手</li><li class="songlist__header_time">时长</li></ul><ul class="songlist__list">{% for p in pages.object_list %}<li class="js_songlist__child"><div class="songlist__item"><div class="songlist__songname"><span class="songlist__songname_txt"><a href="{% url 'play' p.id %}" class="js_song" target="play">{{ p.name }}</a></span></div><div class="songlist__artist"><a href="javascript:;" class="singer_name" >{{ p.singer }}</a></div><div class="songlist__time">{{ p.time }}</div></div></li>{% endfor %}</ul><div class="page-box"><div class="pagebar" id="pageBar">{% if pages.has_previous %}<a href="{% url 'search' pages.previous_page_number %}" class="prev" target="_self"><i></i>上一页</a>{% endif %}{% for p in pages.paginator.page_range %}{% if pages.number == p %}<span class="sel">{{ p }}</span>{% else %}<a href="{% url 'search' p %}" target="_self">{{ p }}</a>{% endif %}{% endfor %}{% if pages.has_next %}<a href="{% url 'search' pages.next_page_number %}" class="next" target="_self">下一页<i></i></a>{% endif %}</div></div></div></div>
</body>
{% endblock  %}
http://www.dinnco.com/news/10301.html

相关文章:

  • 美女和男人做鸡的网站网络营销和直播电商专业学什么
  • 网站建设公司财务预算网络营销策略包括哪四种
  • 动态网站通讯录怎么做seo每天一贴
  • 许昌住房建设局网站深圳seo优化公司
  • 廊坊网站建设方案最新报价网络营销系统
  • wordpress 没有模板选项网站如何优化一个关键词
  • 空间除了可以做网站还能干什么网络营销工具平台
  • 社交网站页面设计手机百度网页版入口
  • 网站正在建设中的图片素材查图百度识图
  • 临河做网站十大接单推广app平台
  • 做钢化膜网站线上营销怎么做
  • 物流公司在哪做网站域名注册需要多久
  • 自己做网站成本软文是什么意思通俗点
  • 无锡工厂网站建设临沂森工木业有限公司
  • 一键免费搭建手机网站seo资讯
  • 盐城做网站多少钱百度品牌广告是什么
  • 做加工都在哪个网站推广太原网站优化公司
  • wordpress 远程代码百度搜索引擎优化案例
  • 二级分销系统开发南沙seo培训
  • 百度app智能小程序网站如何优化排名软件
  • 宽屏大气网站源码广州新塘网站seo优化
  • 做时时彩网站牌照申请百度app安装下载免费
  • 平凉哪家做企业网站谷歌搜索引擎为什么国内用不了
  • 做soho外贸网站网络营销概述
  • 网站建设的公司黄页推广平台有哪些
  • wordpress分类汉字转拼音排名优化怎么做
  • 图书馆网站建设教程游戏推广平台哪个好
  • 网站中怎么做视频直播百度公司官方网站
  • 上海SEO网站优化推广公司永久免费不收费的污染app
  • 做有网被视频网站seo基础视频教程