一、企业官网

瀑布流

​ Models.Student.objects.all() #获取所有学员信息

​ 通过div进行循环图片和字幕

​ 1.以template模板方法实现瀑布流以列为单位放置图片和字母信息:通过取余的方式分列,三列就对三取余,在templatetags里面自定义模板,但是对于前端创建的判断方法if,时不能使用@register.simple_tag,simple_tag方法不能用于if 后,所以引用filter方法:@register.filter

​ 2.以JS的方式实现瀑布流以列为单位放置图片和字母信息:通过JS进行求余运算实现瀑布流

轮播图:

轮播图bxlider插件:依赖于Jquery

组合搜索

​ 目的是信息的查询过滤

​ models.Video.objects.filter() # 查询:使用字典进行组合查询,在前端通过类型id实现动态组合索引,最简单的组合查询方法,数据类型无关联

示例:sparta(学习示例,非本人所写,就不发链接了)

​ 安装python2.7

​ pip2 install django==1.7.8

​ pip2 install Pillow

二、博客系统

​ 个人博客注册

​ 个人主页

​ 个人后台管理

​ 主题定制

​ Editor(回存在XSS攻击)

​ TinyEditor(IE的)

​ UEEditor (百度的)

​ CKEditor(比较老的)

​ KindEditor(中文版的)

​ KindEditor:

​ 基本配置

​ 处理XSS

​ Beautifulsoup4模块使用

三、Tornado

​ Web框架:Tornado

​ Tornado内置模块实现爬虫

四、爬虫

​ requests模块:请求地址获取文件,模拟浏览器向服务端发送请求

  • requests.put()

  • requests.get()

  • requests.post()

  • requests.patch()

  • requests.delete()

  • requests.head()

  • requests.options()

  • requests.request()

  • allow_redirects参数,是否是否重定向

    # Author:wylkjj
    # Date:2020/2/23
    # -*- coding:utf-8 -*-
    import requests
    from bs4 import BeautifulSoup
    import json # requests发送get请求
    response = requests.get('https://www.bilibili.com/')
    # print(response.text)
    soup = BeautifulSoup(response.text, features="html.parser")
    text_list = soup.find_all(name='div', class_='item')
    print(text_list) # requests发送post请求
    form_data = {
    'phone': '+8615044487970',
    'password': 'adpsasfff',
    'loginType': 2,
    } # request 参数
    response = requests.post(
    url='https://dig.chouti.com/login',
    data=form_data, # 请求头为 content-type:application/x-www-form-urlencoded
    params={'eric': '123456'}, # 拼接后url http://www.baidu.com/?query=eric
    json=json.dumps({'user': 'eric', 'pwd': '12345'}), # 请求头会改变content-type:application/json
    )
    print(response.text) # request 参数
    requests.request(
    method = "GET",
    url = "http://www.baidu.com",
    params = {'query':'eric'},
    data={}, # 数据传输,get用不到,post时把data数据放到请求体中传输到后端
    header={
    'referer': 'https://www.zhihu.com/signin?next=http%3A%2F%2Fwww.zhihu.com%2Fpeople%2Feric-wijing',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3970.5 Safari/537.36'
    }, # 当requests访问被拒绝时,设置header中的Referer或'user-agent',因为可能是他们两个参数的问题,在network发送请求后的Header中
    cookies={},
    ) # request 参数
    response = requests.get(
    url='https://i-beta.cnblogs.com/settings',
    # 获取已登陆的信息
    cookies={'.CNBlogsCookie':'93C26874509F65701B9F02163426CC74B23CDE7B9383331E04AEA2BEA2FEBEB0E3DA7F41FAF308FB36B946F007B8981D38AFE66E2042A6A80D2E5BF31E45BCECF0A3343E9AA83FDDCC155278666854E135E069A3',},
    cert:'证书文件' # 有些网站需要证书才能获取数据
    )
    print(response.text)

​ beautifulsoup:数据区提取(格式化)

​ 使用方法:引入from bs4 import BeautifulSoup,创建对象:soup = BeautifulSoup(html_doc, features="html.parser"),html_doc是要解析的对象,features="html.parser"是解析器,最快的解析器是lxml解析器,不过需要自行安装,html解析器是python内置的解析器;

​ soup.children的方法是获取所有模块,只不过只会寻找第一层body ;

​ soup.body.children会寻找出body所有的元素(body的下一层);

​ for tag in soup.body.descendants:循环tag.name能获取标签的类型属性(有div,就会获得其属性div),单独输出tag,循环遍历出所有标签;

​ from bs4 import Tag:遍历的每一个标签,获取其属性,可用其判断获取所有元素的属性;循环tag.name能获取详细的标签类型属性(有div,就会获得其属性div);tag.attrs可以获取所有的标签内部的所有属性对其进行增删改查操作。

​ soup.html.hidden = True;soup.head.hidden = True ;显示出隐藏的标签,如果不设置此属性,在进行soup操作时不会读取出hidden隐藏的内容。

# Author:wylkjj
# Date:2020/2/23
from bs4 import BeautifulSoup
from bs4 import Tag
# Create your views here.
html_doc = """
<body>
<div class="bili-banner1" style="background-image: url(&quot;//i0.hdslb.com/bfs/archive/7197cae46569a49abd98e0c51348068831be6a85.png&quot;);" data-v-5ff46558=""><div class="taper-line" data-v-5ff46558=""></div><div class="b-logo b-wrap" style="margin: 0" data-v-5ff46558=""><a href="//www.bilibili.com" class="head-logo" data-v-5ff46558=""><img src="//i0.hdslb.com/bfs/archive/1be2fd76cc98cdc6a595c05c3134fbf937a1c126.png" class="logo-img" data-v-5ff46558="">123456789</a><!----></div><!----></div>
<div class="bili-banner2" style="background-image: url(&quot;//i0.hdslb.com/bfs/archive/7197cae46569a49abd98e0c51348068831be6a85.png&quot;);" data-v-5ff46558=""><div class="taper-line" data-v-5ff46558=""></div><div class="b-logo b-wrap" style="margin: 0" data-v-5ff46558=""><a href="//www.bilibili.com" class="head-logo" data-v-5ff46558=""><img src="//i0.hdslb.com/bfs/archive/1be2fd76cc98cdc6a595c05c3134fbf937a1c126.png" class="logo-img" data-v-5ff46558="">123456789</a><!----></div><!----></div>
asdfasfasdfasdf
<a>123456</a>
<h3>123456</h3>
<div class="bili-banner3" style="background-image: url(&quot;//i0.hdslb.com/bfs/archive/7197cae46569a49abd98e0c51348068831be6a85.png&quot;);" data-v-5ff46558=""><div class="taper-line" data-v-5ff46558=""></div><div class="b-logo b-wrap" style="margin: 0" data-v-5ff46558=""><a href="//www.bilibili.com" class="head-logo" data-v-5ff46558=""><img src="//i0.hdslb.com/bfs/archive/1be2fd76cc98cdc6a595c05c3134fbf937a1c126.png" class="logo-img" data-v-5ff46558="">123456789</a><!----></div><!----></div>
</body>
"""
# python内置解析器,但lxml使用时解析最快,需要安装
soup = BeautifulSoup(html_doc, features="html.parser")
# tag1 = soup.find(name='a')
for tag in soup.body.descendants:
# for tag in soup.body.children:
# for tag in soup.children:
if isinstance(tag, Tag):
# print("属性:", tag.name, tag.attrs)
pass
tag1 = soup.find(name='a')
del tag1.attrs['class']
print(tag1)
print(soup) tag1 = soup.find(name='a')
tag1.clear()
print(tag1)
print(soup)

​ 单例模式:使用一个对象进行操作

# Author:wylkjj
# Date:2020/2/23
# -*- coding:utf-8 -*- # 创建单例模式第一种方法
class Foo:
__instance = None @classmethod
def instance(cls):
if Foo.__instance:
return Foo.__instance
else:
obj = Foo()
Foo.__instance = obj
return Foo.__instance obj1 = Foo()
obj2 = Foo()
print(obj1, obj2) # 创建单例模式第二种方法
class Fo(object):
__instance = None def __init__(self):
pass def __new__(cls, *args, **kwargs):
if cls.__instance:
return cls.__instance
else:
obj = object.__new__(cls, *args, **kwargs) # 创建类
cls.__instance = obj
return cls.__instance obj3 = Fo()
obj4 = Fo()
print(obj3, obj4)

​ scrapy框架:爬虫框架

五、Web微信/微信公众平台登录

只是在网页端允许登录时可以使用,但是由于微信取消了网页端的登录,无法实现,纯属个人喜好,理解理解。

轮询:

  客户端定时向服务器端发送 Ajax 请求,服务器端接收到请求后马上返回信息并关闭连接。缺点是:有延时,无法满足即时通信的需求。

长轮询(Comet):

  客户端向服务器端发送 Ajax 请求,服务器端接收到请求后保持住连接,直到有新消息才返回响应信息并关闭连接。客户端在处理请求返回信息(超时或有效数据)后再次发出请求,重新建立连接。缺点是:服务器保持连接会消耗较多的资源。

WEB微信页:

  • 访问页面出现二维码
  • 长轮询监听是否已经扫码并且点击确认
  • 如何进行会话保持
  • 如何获取用户列表
  • 如何发送消息(接受消息)

微信二维码获取地址的前缀:https://login.weixin.qq.com/qrcode/{0}

由于现在无法进行操作,其它内容就不编辑了

轮播组件/瀑布流/组合搜索/KindEditor插件的更多相关文章

  1. 基于移动端Reactive Native轮播组件的应用与开发详解

    总结下这段时间学习reactive native的一些东西,我们来认识一下,被炒得这么火的rn,究竟是个什么东西,以及如何去搭建自己的demo. reactive  native是什么 由facebo ...

  2. 移动端Reactive Native轮播组件

    移动端Reactive Native轮播组件 总结下这段时间学习reactive native的一些东西,我们来认识一下,被炒得这么火的rn,究竟是个什么东西,以及如何去搭建自己的demo. reac ...

  3. 一分钟搞定AlloyTouch图片轮播组件

    轮播图也涉及到触摸和触摸反馈,同时,AlloyTouch可以把惯性运动打开或者关闭,并且设置min和max为运动区域,超出会自动回弹. 除了一般的竖向滚动,AlloyTouch也可以支持横向滚动,甚至 ...

  4. bootstrap轮播组件,大屏幕图片居中效果

    在慕课网学习bootstrap轮播组件的时候,了解到轮播的图片都放在了类名为item下的img中 视频中老师对图片自适应采用给图片img设置width=100%完成,然而这样自适应处理图片在不同屏幕中 ...

  5. 轮播组件iceSlider

    ~~~~作为编写组件的一个参考吧,在js输出组件样式的问题上 探讨一下 尽量简化组件的调用 function iceSlider(element,options) { /* 功能:广告翻转切换控制 参 ...

  6. C-Swipe Mobile 一个适用于Vue2.x的移动端轮播组件

    近期在做的一个Vue2项目里需要一个可以滑动的轮播组件,但是又因为现有的传统轮播库功能过于繁琐和笨重.因此自己写了一个针对于Vue2.x的轻型轮播组件. 项目GitHub链接:C-Swipe Mobi ...

  7. Angular2组件与指令的小实践——实现一个图片轮播组件

    如果说模块系统是Angular2的灵魂,那其组件体系就是其躯体,在模块的支持下渲染出所有用户直接看得见的东西,一个项目最表层的东西就是组件呈现的视图.而除了直接看的见的躯体之外,一个完整的" ...

  8. bootstrap轮播组件之“如何关闭自动轮播”

    在一个页面里使用多个bootstrap轮播组件的时候,如果还让所有轮播图都自动轮播的话,整个画面都在动,会给用户一种很不好的体验感受.所以,需要关闭轮播图的自动轮播. 关闭方法:去除如下属性即可: d ...

  9. React-Native之轮播组件looped-carousel的介绍与使用

    React-Native之轮播组件looped-carousel的介绍与使用 一,关于react-native轮播组件的介绍与对比 1,react-native-swiper在动态使用网页图片,多张图 ...

随机推荐

  1. jquery的版本 纵多 , 各个版本的插件的融合 ,

    有些插件在哪些版本下没有 插件之间因为版本冲突 是得不偿失的事情

  2. 靶机-BTRSys 2.1 Walkthrough

    BTRSys 2.1 https://www.vulnhub.com/entry/btrsys-v21,196/ 参考:https://www.jianshu.com/p/9813095ce04d 提 ...

  3. sqli_labs学习笔记(一)Less-1~Less-20

    开门见山 Less-1 GET - Error based - Single quotes - String(基于错误的GET单引号字符型注入) ·  方法一:手工UNION联合查询注入 输入单引号, ...

  4. Git详解之常用命令

    注意:此篇文章中的绝大部分内容来自摘抄,查阅人员请注意

  5. screen配置窗口显示

    screen的下方不显示,可以复制如下的代码 cd /root && vim .screenrc 贴上如下内容 hardstatus on hardstatus alwayslastl ...

  6. CSDN

    链接:https://blog.csdn.net/shaoyedeboke

  7. archlinux+UEFI模式在linux主机下基于KVM-QEMU命令行虚拟机安装笔记

    ArchLinux十分精简,并且具有强大的滚动更新.最近在基于ubuntu的宿主机下通过KVM-QEMU虚拟机安装了archlinux,将过程记录下来以供参考. 1.下载启动盘 1.1.下载archl ...

  8. 90万条数据玩转RFM用户分析模型

    RFM,是一种经典的用户分类.价值分析模型: R,Rencency,即每个客户有多少天没回购了,可以理解为最近一次购买到现在隔了多少天. F,Frequency,是每个客户购买了多少次. M,Mone ...

  9. Codeforces_851

    A.分三种情况. #include<bits/stdc++.h> using namespace std; int n,k,t; int main() { ios::sync_with_s ...

  10. 基于 HTML5 Canvas 的病毒模拟视觉试验台

    前言 2020 年 1 月 12 日,世界卫生组织以武汉病毒肺炎病例命名了一种病毒,2019新型冠状病毒 ( 2019-nCoV ) .随着春运的到来,该病毒迅速的蔓延开来,大家都唯恐避之不及.病毒的 ...