sulin Python3.6爬虫+Djiago2.0+Mysql --实例demo

1.切换到项目目录下,启动测试服务器

  manage.py runserver 192.168.0.108:8888

2.设置相关配置 项目目录展示如下:

 

beauty=>settings.py 修改

 2.1 添加app到应用程序中

2.2 设置模板路径

2.3 配置数据为mysql

2.4设置静态文件路径

2.5设置漏油  

 

 3.beautyApp 代码

  3.1执行djiago命令生成数据库model 到beautyApp=>models.py

   

 

from django.db import modelsclass Grilsbase(models.Model):name = models.CharField(max_length=50, blank=True, null=True)height = models.CharField(max_length=50, blank=True, null=True)bwh = models.CharField(max_length=50, blank=True, null=True)title = models.CharField(max_length=100, blank=True, null=True)img_upload = models.CharField(max_length=100, blank=True, null=True)pc_img_upload = models.CharField(max_length=100, blank=True, null=True)resource_id = models.CharField(max_length=50, blank=True, null=True)totals = models.CharField(max_length=50, blank=True, null=True)recommend_id = models.CharField(max_length=50, blank=True, null=True)date = models.CharField(max_length=50, blank=True, null=True)headimg_upload = models.CharField(max_length=100, blank=True, null=True)show_datetime = models.CharField(max_length=50, blank=True, null=True)client_show_datetime = models.CharField(max_length=50, blank=True, null=True)video_duration = models.CharField(max_length=50, blank=True, null=True)free_select = models.CharField(max_length=50, blank=True, null=True)trial_time = models.CharField(max_length=50, blank=True, null=True)viewtimes = models.CharField(max_length=50, blank=True, null=True)coop_customselect_654 = models.CharField(max_length=50, blank=True, null=True)coop_id = models.CharField(max_length=50, blank=True, null=True)tag_class = models.CharField(max_length=50, blank=True, null=True)tag_name = models.CharField(max_length=50, blank=True, null=True)playerid = models.CharField(max_length=50, blank=True, null=True)block_detailid = models.CharField(max_length=50, blank=True, null=True)type = models.CharField(max_length=50, blank=True, null=True)istop = models.CharField(max_length=50, blank=True, null=True)class Meta:managed = Falsedb_table = 'grilsbase'

 

3.2 beautyApp =>views.py

from django.shortcuts import render
from django.http import HttpResponse,JsonResponse
from beautyApp.models import Grilsbase
from django.core import serializers 
import randomdef index(request):rows=Grilsbase.objects.filter(type=1)[:20]return  render(request,'index.html',context={'rows':rows})def detail(request,id):rows=Grilsbase.objects.get(block_detailid=id)srow=random.randint(10,80)rowsrandom=Grilsbase.objects.filter(type=1)[srow:srow+4]rowscout=Grilsbase.objects.filter(type=2).count()srowright=random.randint(0,rowscout)rowsright=Grilsbase.objects.filter(type=2)[srowright:srowright+1]return render(request,'detail.html',context={'totals':range(1,int(rows.totals)),'name':rows.name,'height':rows.height,\'bwh':rows.bwh,'title':rows.title,'resource_id':rows.resource_id,'headimg_upload':rows.headimg_upload,'rowsrandom':rowsrandom,\'rowsright': rowsright})
def ajax_page(request):page=request.GET["page"]srow=(int(page)-1)*20erow=int(page)*20rows=serializers.serialize("json",Grilsbase.objects.filter(type=1)[srow:erow])return JsonResponse(rows,safe=False)

 

 

3.3 创建模板 静态文件夹

base.html

 1 {% load static %}
 2 <!doctype html>
 3 <html lang="en">
 4  <head>
 5   <meta charset="UTF-8">
 6   <meta name="Author" content="">
 7   <meta name="Keywords" content="">
 8   <meta name="Description" content="">
 9   <title>{% block title %}美女频道{% endblock %}</title>
10   <link rel="stylesheet" rev="stylesheet" type="text/css" media="all" href="{% static '/css/newbase.css' %}">
11   <link rel="stylesheet" rev="stylesheet" type="text/css" media="all" href="{% static '/css/bugirl.css' %}">
12   <script src="{% static '/js/jquery.min.js' %}"></script>
13  </head>
14  <body class="y16" id="act_body_wapper">
15     <div class="wrapper-head wp-hd-white" id="">
16         <div class="vip-header modwp">
17             <h1 class="logo">
18                 <a class="viplogo" href="#" title="天天美图">天天美图</a>
19             </h1>
20             <div class="h_navin">
21                 <span class="ic_line" id="h_icline"></span>
22                 <ul class="menu" id="h_navlist">
23                     <li><a title="视频" href="/index" class="mid_link">&nbsp;<span class="hot_ico"></span></a></li>
24 
25                     <li class="cur"><a href="/index" class="mid_link">&nbsp;</a></li>
26                     <li><a href="/index" class="mid_link">&nbsp;</a></li>
27                 </ul>
28             </div>
29 
30         </div>
31     </div> 
32 {% block content %}
33 <div>这里是默认内容,所有继承自这个模板的,如果不覆盖就显示这里的默认内容。</div>
34 {% endblock %}
35 <div class="vip-footer">
36         <div class="sys_footer">
37             <div class="foot">
38                 <p class="links">
39 
40                     <a target="_blank" href="" title="商务合作">商务合作</a><span>|</span>
41                     <a target="_blank" href="" title="客服中心">客服中心</a><span>|</span>
42                     <a target="_blank" href="" title="安全中心">安全中心</a><span>|</span>
43                     <a target="_blank" href="" title="用户协议">用户协议</a>
44                 </p>
45                 <p>
46                     <a target="_blank" href="#">信息网络传播视听节目许可证1908323号</a>
47                     <a target="_blank" href="#">增值电信业务经营许可证粤B2-20050219号</a>
48                     <a target="_blank" href="#">网络文化经营许可证文网文[2010]163号</a> 粤ICP备10240715号
49                 </p>
50                 <p>© 2003-2018  版权所有</p>
51             </div>
52         </div>
53     </div>
54 </body>
55 </html>

 

index.html

{% extends 'base.html' %}
{% block title %}美女专题{% endblock %}
{% block content %}
{% load static %}<div class="bugirl_wp"><div class="bugirl_cont"><!--专辑内容--><div class="tab_area album"><div class="list_wp modwp"><div class="list_row" id="waterfall">{% for i in rows %}<div class="girl_wp img_wp"><span class="mark_update"><i class="ico_update"></i>最新专辑</span><img class="img_girl" src="{% static i.resource_id %}/{{ i.img_upload }}" alt="{{i.title}}"><div class="describe"><div class="txt_wp"><p class="tit">{{i.title}}</p><p class="date">{{i.date}}</p><span class="mark_free"><i class="ico_see"></i> <span>免费试看</span> <i class="mark_bg"></i></span><span class="mark_vipgq" style="display:none">高清</span></div><div class="mask"></div></div><a href="{% url 'detail' %}/{{ i.block_detailid }}" class="mask_click">点击查看</a></div>{% endfor %}</div></div></div></div></div><script>var isStop = 0;//触发开关 function ajaxData(page) {$.ajax({url:'/ajax_page',    type:'get',data:{'page':page},dataType:'json',success:function(data){var html = '';var json=JSON.parse(data);$.each(json,function(k,v){html+= ' <div class="girl_wp img_wp">'+ ' <img class="img_girl" src="{% static '' %}'+v.fields.resource_id+'/'+v.fields.img_upload+'" alt="'+v.fields.title+'">'+ ' <div class="describe">'+ '   <div class="txt_wp">'+ '     <p class="tit">'+v.fields.title+'</p><p class="date">'+v.fields.date+'</p><span class="mark_free">'+ ' <i class="ico_see"></i> <span>免费试看</span> <i class="mark_bg"></i>'+' </span><span class="mark_vipgq" style="display:none">高清</span>'+ ' </div>'+ '<div class="mask"></div>'+ "</div><a href=\"{% url 'detail' %}/"+v.fields.block_detailid+"\" class=\"mask_click\">点击查看</a>"+ '</div>';});isStop = 0;$("#waterfall").append(html);}});}$(function () {var curpage = 1;//定义一个全局变量page  
            $(window).scroll(function () {// 当滚动到最底部加载新内容  if ($(document).height() - $(this).scrollTop() - $(this).height() < 100) {if (!isStop) {isStop = 1;curpage++;ajaxData(curpage);}}});});</script>
{% endblock %}

 

detail.html

{% extends 'base.html' %}
{% block title %}{{title}}{% endblock %}
{% block content %}
{% load static %}
<div class="wrapper pb0 zjxq_page"><div class="play_area_wp"><div class="modwp"><p class="crumb"><a href="/index">首页</a>&nbsp;&gt;&nbsp;<a href="/index">专辑</a>&nbsp;&gt;&nbsp;<a href="#" class="title">{{title}}</a></p><div class="play_area"><div class="play_box_wp fl"><div class="guide_num"><span class="now">1</span>/<span class="total totals">_</span></div><div class="play_box"><div class="vip_tag" style="display:none">会员专享</div><div class="free_tag">免费试看<span><em class="now"></em></span></div><!--轮播图--><div class="img_wp"><div class="img_list" id="wrapper1" n="0"><ul class="imgbox" style="width: 33450px; transition-timing-function: cubic-bezier(0.1, 0.57, 0.1, 1); transition-duration: 0ms; transform: translate(-720px, 0px) translateZ(0px);">{% for i in  totals %}<li><img class="portrait" src="{% static resource_id %}/{{ i }}.jpg" data-src="{% static resource_id %}/{{ i}}.jpg" alt=""></li>{% endfor %}</ul><!-- 免费观看 开通会员查看更多 --><div class="tip_free" id="detailview" style="display:none;"><div class="cont"><span class="content">登陆后可观看更多</span></div><a href="javascript:;" class="close" title="关闭">关闭</a></div></div><!-- 缩略图 --><div class="thumbnail_list"><div class="thumbnail_cont"><ul id="thumbnail" style="margin-left: 0px;">{% for i in  totals %}<li><a href="javascript:;"><img src="{% static resource_id %}/{{ i }}.jpg" data-src="{% static resource_id %}/{{ i }}.jpg" width="134" height="87"></a></li>{% endfor %}<!--<li><a href="javascript:;"><img src="http://meitu.xunlei.com/img-y16/bugirl/loading.gif" data-src="http://data.meitu.xunlei.com/data/image/yangpei0818/34.jpg" width="134" height="87"><span class="mask_lock vip"><em>会员解锁</em></span></a></li>-->
</ul></div></div></div><!--轮播图结束--><div class="arrow_wp"><a href="javascript:;" class="arrow_left arrow_left1" title="左翻">左翻</a><a href="javascript:;" class="arrow_right arrow_right1" title="右翻">右翻</a></div><!--为你推荐--><div class="pop_pause pop_recommend" id="standmode" style="display:none;"><div class="pos_rel"><div class="pop_hd"><p class="pop_tit">为你推荐</p><a href="#" class="pop_refresh">换一个</a></div></div><a href="javascript:;" class="u_close" title="关闭">关闭</a><div class="mask"></div></div></div></div><div class="info_wp fr"><div class="info"><div class="img_wp"><img class="headimg_upload" src="{% static resource_id %}/{{ headimg_upload }}" alt="美女头像"></div><div class="txt_wp"><p class="uname name">{{ name }}</p><p>身高/<span class="height">{{ height }}</span>cm</p><p>三围/<span class="bwh">{{ bwh }}</span></p></div><div class="vip_paybox"><a href="javascript:;" class="btn_pay down"  ><i class="ico_down"></i>会员高清下载</a><p class="txt">会员尊享高清原画品质,美丽纤毫可见</p></div></div><div class="video_list" id="videobox"><div class="hd"><h2><span>推荐视频</span></h2></div><div class="girl_wp video_wp">{% for right in rowsright %}<div class="img_girl"><img src="{% static right.resource_id %}/{{ right.img_upload }}" alt=""><i class="ico_play"></i></div><div class="describe"><div class="txt_wp"><p class="tit">{{right.title}}拍摄花絮</p></div></div>{% endfor %}</div></div></div></div></div></div><div class="detail_wp"><div class="hd modwp"><h3>推荐专辑</h3></div><!--专辑内容--><div class="album"><div class="list_wp modwp"><div class="list_row" id="listzj">{% for ri in  rowsrandom %}<div class="girl_wp img_wp"><img class="img_girl" src="{% static ri.resource_id %}/{{ ri.img_upload }}" alt="{{ri.title}}"><div class="describe"><div class="txt_wp"><p class="tit">{{ri.title}}</p><p class="date">{{ri.date}}</p></div></div><a href="{% url 'detail' %}/{{ ri.block_detailid }}"  target="_blank" class="mask_click" >点击查看</a></div>{% endfor %}</div></div></div>
</div><!-- wrapper end --><!--全屏图片-->
<div class="full_screen" style="visibility:hidden;"><div class="play_box modwp"><!--轮播图--><div class="img_wp"><div class="img_list" id="wrapper2" data-num=''><ul class="imgbox2" ><li><img class="portrait" src="{% static 'loadingthum.gif' %}"  alt="" /></li></ul></div></div><!--轮播图结束--><div class="arrow_wp"><a href="javascript:;" class="arrow_left arrow_left2" title="左翻">左翻</a><a href="javascript:;" class="arrow_right arrow_right2" title="右翻">右翻</a></div><div class="btn_wp"><a href="javascript:;" class="close" title="关闭">关闭</a></div></div>
</div>
<script src="{% static '/js/detail.js' %}" defer="defer" ></script>
{% endblock %}

 

4.效果图展示

 

 

转载于:https://www.cnblogs.com/linsu/p/8628411.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/267398.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

dubbo的invoke命令_dubbo 调试服务telnet命令

1.概述在我们使用dubbo实现分布式布局时&#xff0c;如果我们想测试我们刚写好的service层服务是否正确时&#xff0c;通常要将service层和web层同时开启&#xff0c;通过浏览器调用controller层端口&#xff0c;达到测试service层的目的。有时&#xff0c;这样的测试方法过于麻…

18个不常见的C#关键字,您使用过几个?

18个不常见的C#关键字&#xff0c;您使用过几个&#xff1f;1、__arglist 让我们先从__arglist开始。 __arglist是用来给方法传送参数。通常我们是通过函数头部指定的参数列表给方法传递参数的。如果我们想要给方法传递一组新的参数&#xff0c;我们需要重载方法。如果我们想…

C指针详解

前言:复杂类型说明 要了解指针,多多少少会出现一些比较复杂的类型,所以我先介绍一下如何完全理解一个复杂类型,要理解复杂类型其实很简单,一个类型里会出现很多运算符,他们也像普通的表达式一样,有优先级,其优先级和运算优先级一样,所以我总结了一下其原则:从变量名处起,根据运…

java collection api_Java Stream和Collection比较:何时以及如何从Java API返回?

向您展示一些可以非常方便地使用Java Stream流的场景以及如何使用它们的示例。本文基于标准Java库java.util.stream。它既与反应流无关&#xff0c;也与诸如Vavr之类的其他流实现无关。另外&#xff0c;我将不介绍诸如并行执行之类的流的高级细节。首先&#xff0c;让我们简要讨…

依赖属性

项目的WF中用到了依赖属性, 有点晕, 不明白, 先来段代码: public static DependencyProperty IsSignInProperty DependencyProperty.Register("IsSignIn", typeof(System.String), typeof(StateMachineWF.WF1)); [DesignerSerializationVisibilityAttribute(Designe…

[UE4]集合:TSet容器

一、TSet<T>是什么 UE4中&#xff0c;除了TArray动态数组外&#xff0c;还提供了各种各样的模板容器。这一节&#xff0c;我们就介绍集合容器——TSet<T>。类似于TArray<T>&#xff0c;尖括号里面的T是模板类型&#xff0c;可以是任何C类型。一个集合表示了一…

【汇总】flash单个文件上传

之前有朋友给我发送email&#xff0c;询问我是否有单个文件上传的源代码&#xff0c;因为当时写这个好像是在09年&#xff0c;所以放哪了一时也没找着。后来整理硬盘的时候&#xff0c;找到了源码&#xff0c;所以决定来个汇总&#xff08;之前写过的关于flashjs上传文件的例子…

2018.3.24 struct

好了今天听完了struct&#xff0c;感觉也差不多了&#xff0c;后面的视频不想听了&#xff0c;io啊预处理啊什么的用时候现学就好了。主要是就这么光听却没有作业可做真的有点不爽。 明天开始15-213&#xff0c;反正手头也有c primer plus了&#xff0c;后面遇到什么问题看书就…

一直苦于没有好的资产管理软件,GLPI能解决吗?

一直苦于没有好的资产管理软件&#xff0c;正好看到网上文章有介绍glpi资产管理开源软件 在此做个记录&#xff0c;有时间一定要测试一下 &#xff08;1&#xff09;资产管理工具GLPI 官网 http://www.glpi-project.org/ GLPI是法语Gestionnaire libre de parc informatique的…

weka的java环境配置_windows下安装和配置Weka

Weka是一款免费的&#xff0c;非商业化的&#xff0c;基于java环境下的开源的机器学习以及数据挖掘软件。Weka里含有各种数据挖掘工具&#xff1a;数据预处理&#xff0c;分类与回归&#xff0c;聚类&#xff0c;关联规则和可视化工具。一、安装weka我们首先需要到weka官网上下…

Windows部署服务WDS实例

一&#xff1a;概述<?xml:namespace prefix o ns "urn:schemas-microsoft-com:office:office" />Windows&#xff08;Windows Deployment Services&#xff09; 部署服务适用与大中型网络中的计算机操作系统部署。可以使用 Windows 部署服务来管理映像以及无…

JAVA----爬虫(一)JSoup

jsoup 是一款Java 的HTML解析器&#xff0c;可直接解析某个URL地址、HTML文本内容。它提供了一套非常省力的API&#xff0c;可通过DOM&#xff0c;CSS以及类似于jQuery的操作方法来取出和操作数据。 官方api:https://jsoup.org/ 一、jsoup功能 简单的例子&#xff1a;抓取wiki的…

java语言模拟_Java语言模拟操作系统.doc

河北大学2010级操作系统课程设计论文PAGEPAGE 27装订线装订线(指导教师用表)学 生 姓 名指 导 教 师论文(设计)题目Java语言模拟操作系统主要研究(设计)内容使用java语言&#xff0c;采用多到程序设计方法基本上实现并模拟了单用户操作系统。该操作系统包括四部分内容&#xff…

极速理解设计模式系列:22.状态模式(State Pattern)

四个角色&#xff1a;抽象状态类(State)、具体状态类(ConcreateState)、情景类(Context)、客户端(Client) 抽象状态类(State):提供一个与情景类有关的State行为。 具体状态类(ConcreateState):实现这个行为&#xff0c;实现一个状态。 情景类(Context):维护一个State的实例对象…

485. Max Consecutive Ones

原题链接&#xff1a;https://leetcode.com/problems/max-consecutive-ones/description/ 这道题目级别为easy&#xff0c;实际做起来也是so easy&#xff1a; /*** Created by clearbug on 2018/2/26.*/ public class Solution {public static void main(String[] args) {Solu…

[转]extern使用方法总结

Extern的问题在于不知道这个关键词出现的时候到底是声明还是定义。谨记&#xff1a;声明可以多次&#xff0c;定义只能一次。在使用中&#xff0c;要形成一种风格。 函数的声明extern关键词是可有可无的&#xff0c;因为函数本身不加修饰的话就是extern的。但是引用的时候一样是…

java 设置pdf 编码格式_Java如何设置PDF文档背景色详解

前言一般生成的PDF文档默认的文档底色为白色&#xff0c;我们可以通过一定方法来更改文档的背景色&#xff0c;以达到文档美化以及保护双眼的作用。 以下内容提供了Java编程来设置PDF背景色的方法。包括&#xff1a;设置纯色背景设置图片背景使用工具Spire.PDF for Java 2.0.3J…

关于strassen矩阵乘法的矩阵大小不是2^k的形式时,时间复杂度是否还是比朴素算法好的看法...

原来是n&#xff0c;找到大于等于n且是2^k形式的数m。n*n的矩阵补全为m*m的矩阵&#xff0c;原来的矩阵放在最左上方&#xff0c;其它位置的值为0.朴素方法&#xff1a;n^3现在&#xff1a;m^2.8即m/n需小于e^(3/2.8)2.919才能好&#xff0c;而n<m<2*n&#xff0c;即使用…

UtilSession failed: Prerequisite check CheckSystemSpace space(22288172004) is not availa

如果你在使用OPatch打11.2 GI/CRS上的PSU时遇到了如上错误信息"UtilSession failed: Prerequisite check "CheckSystemSpace" space"则说明你的CRS_HOME所在文件系统的空闲空间不足22g&#xff0c;这会导致OPatch预检测无法通过。 UTIL session.Oracle…

数据库 oracle 设计三范式

一&#xff1a;表中的数据不能重复&#xff0c;每个字段不可再分。2&#xff1a; 建立在第一范式上&#xff0c;表中的非主键字段必须全部依赖主键&#xff0c;不能部分依赖主键3 建立在第二范式基础上的&#xff0c;非主键字段不能传递依赖于主键字段。转载于:https://www.cnb…