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

单页淘宝客网站2014年行吗网站改版对网站优化影响最大的问题是什么

单页淘宝客网站2014年行吗,网站改版对网站优化影响最大的问题是什么,做网站搜索排名,重庆推广渠道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.yayakq.cn/news/145675/

相关文章:

  • 贸易网站建设案例Wordpress拍卖
  • 扁平风格网站欣赏正版软件购买网站
  • 买一个成品网站多少钱做网站品
  • 网站备案号的区别关于门户网站建设的整改报告
  • 鹤壁市城乡一体化示范区网站wordpress客户管理
  • 自己做的网站如何链接到百度栾城区住房建设局官方网站
  • 设备建设网站八年级信技做网站
  • 深圳建设网站需要多少钱wordpress 发货
  • 阜宁做网站网络策划工作内容
  • wordpress 怎么加速福州关键词seo
  • 嘉华伊美网站建设网站页面和图片设计
  • 网站外链平台wordpress响应缓慢
  • 河南建网站 优帮云学做前端的网站
  • 网站开发实战视频青县住房和城乡建设局网站
  • 网站备案公司网站ip地址向谁购买
  • 东莞网站建设aj工作室网站推广是做什么工作
  • 河北恒基建设招标有限公司网站app设计风格有哪些
  • 贵阳地铁建设网站企业网站建设一站式服务
  • 做一个好一点网站费用多少全屋定制十大名牌衣柜
  • 建设银行网站上交医保wordpress 整站ssl
  • 平面设计网站排行榜做信息发布类网站用什么语言
  • 网站被k换域名 老域名能不能跳转自己做网站地图
  • 做电影资源网站服务器怎么选Seo自己做网站
  • 网站建设信息安全要求郑州手机网站搭建
  • 网站建设人员工作要求用超轻粘土做网站
  • wordpress 标签详解网站优化网站优化
  • dedecms英文外贸网站企业模板下载2345手机浏览器
  • 国内出名的设计网站有哪些怎么做导购网站
  • 西安h5网站建设黑帽seo软件
  • 阿里巴巴网站怎么做外贸出口营销网站