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;这样的测试方法过于麻…

【汇总】flash单个文件上传

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

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的…

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

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

[转]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…

产品架构开发方法(2011中国软件技术大会)

上周末在国家会议中心举办的2011中国软件技术大会上我做了一个分享&#xff1a;产品架构开发方法。很高兴能在不同的大会上做演讲&#xff0c;但更高兴的是能够结交更多的朋友。 这个演讲内容包括了企业架构、业务分析、软件产品线、产品管理等内容&#xff0c;知识量有点大哦。…

IDC机房KVM应用案例分析

IDC机房KVM应用案例分析<?xml:namespace prefix"o">?xml:namespace>一、背景介绍随着信息技术的发展&#xff0c;各行各业都在马不停蹄的开展着各自的信息化建设步伐。对于设计制造创新科技产品为运行主业的设计院而言&#xff0c;内部IT基础设备与机房管…

java跟踪会话_JavaWeb会话跟踪

cookie和session是常用的会话跟踪技术cookie机制1、web应用程序是使用HTTP协议传输数据的&#xff0c;HTTP协议是无状态的协议&#xff0c;一旦数据交换完毕就会关闭链接。Cookie可以弥补HTTP协议无状态的不足。位于&#xff1a;javax.servlet.http.Cookie2、Cookie具有不可跨域…

教你用身份证号查社保卡号 个人电脑号

适用前提&#xff1a;在广东省内交社保 用身份证查社保号第一步 登录广东社保局网站 广东社保局网站 在“全省个人养老保险信息查询“框输入你的身份证号码 这时要密码&#xff0c;面此要注册&#xff0c;注册时那红星星不用理会&#xff0c;除了姓名其他乱填即可&#xff0c;这…

X3D.Studio编辑器界面介绍

2019独角兽企业重金招聘Python工程师标准>>> X3DStudio编辑器的界面可分为【菜单栏】、【属性栏】、【显示栏】和【对象信息栏】四大部分。如下图所示。 X3D.Engine 通用虚拟现实引擎安装包下载地址&#xff1a;http://www.x3dengine.cn/Download.aspx 技术支持QQ群…

php 三方即时通讯_php即时通讯解决方案-请问PHP能否实现即时通讯?

最简单的说&#xff0c;它可以定期刷新&#xff0c;比如10秒的间隔。新数据&#xff0c;反馈到前台&#xff0c;没有新数据等待下次刷新。但实际上在应用中需要考虑消息的及时性、服务器压力等。php即时通讯。可以用comet来设计节点。js、socketphp即时通讯系统。总之&#xff…

php fopen插入文本_PHP 文件创建/写入

在项目中&#xff0c;我们在服务器上面操作文件&#xff0c;是一件非常频繁的事情。比如用户的投票的数据写入到txt文档中&#xff0c;缩略图上传&#xff0c;文件上传&#xff0c;及文件移动等等操作都离不开PHP 文件创建/读写/上传(上传我将会在下一节中讲到)。PHP 创建文件 …

【原译】在amazon kindle上安装Metasploit

免责申明&#xff08;必读&#xff01;&#xff09;&#xff1a;本博客提供的所有教程的翻译原稿均来自于互联网&#xff0c;仅供学习交流之用&#xff0c;切勿进行商业传播。同时&#xff0c;转载时不要移除本申明。如产生任何纠纷&#xff0c;均与本博客所有人、发表该翻译稿…

这就是搜索引擎:核心技术详解

这就是搜索引擎&#xff1a;核心技术详解张俊林 著ISBN 978-7-121-14865-12012年1月出版定价&#xff1a;45.00 元16开320页宣传语&#xff1a;改变全世界人们生活方式的“信息之门”内 容 简 介搜索引擎作为互联网发展中至关重要的一种应用&#xff0c;已经成为互联网各个领域…

php yii 控件分页,Yii2分页的使用及其扩展方法详解

前言&#xff1a;说明下我们本篇文章都要讲哪些内容分页的使用&#xff0c;一步一步的教你怎么做分页类LinkPager和Pagination都可以自定义哪些属性分页类LinkPager如何扩展成我们所需要的第一步&#xff0c;我们来看看yii2自带的分页类该如何去使用&#xff1f;1、controller …

charles修改响应体

一.修改响应体&#xff08;只要勾选了主导航Tools--rewrite之后&#xff0c;则请求会一直被修改&#xff09; 目的&#xff1a;需要测试数据为空&#xff0c;为纯英文&#xff0c;纯数字等多种情况&#xff0c;为了不麻烦后端的技术人员一支来配置&#xff0c;那么咱们就可以改…

HW—词频统计

第一次个人作业——词频统计 第一次做这种大作业&#xff0c;明显感觉陌生&#xff0c;各种规范和技能也是第一次使用&#xff0c;希望自己好运。 目录&#xff1a;一、基本要求 二、需求分析及时间估计 三、实现思路及过程 四、测试用例、时间性能分析及改进方法 五、经验总结…