作者文章归档:daxiahy

05filter

过滤

settings.py

INSTALLED_APPS = [
    'django_filters',
]

queryset过滤方式

class GoodsListViewSet(mixins.ListModelMixin, viewsets.GenericViewSet):
    """
    商品列表页
    """
    queryset = Goods.objects.all().order_by("id")  # 一定要排序 不然分页会出错
    permission_classes = (IsAuthenticated,)  # 用户未登录则无法请求该接口
   

阅读全文 →

06登录

drf登录

authtoken

# 把'rest_framework.authtoken',注册进apps里
# makemigrations
# migrate

url.py

from rest_framework.authtoken import views
    url(r'^api-token-auth/', views.obtain_auth_token),

settings.py

# django restframework 配置
REST_FRAMEWORK = {
    'DEFAULT_AUTHENTICATION_CLASS': (
        'rest_fram

阅读全文 →

8缓存

安装

pip install drf-extensions

引用

from rest_framework_extensions.cache.mixins import CacheResponseMixin
# 加入CacheResponseMixin到第一个入参
class GoodsListViewSet(CacheResponseMixin, mixins.ListModelMixin, viewsets.GenericViewSet):

可以再settings.py中配置有效时间,具体查官方文档

使用redis

pip install django-redis

在settings.py中

阅读全文 →

dwebsocket

一 什么是Websocket

WebSocket是一种在单个TCP连接上进行全双工通信的协议

WebSocket使得客户端和服务器之间的数据交换变得更加简单,允许服务端主动向客户端推送数据。在WebSocket API中,浏览器和服务器只需要完成一次握手,两者之间就直接可以创建持久性的连接,并进行双向数据传输

现在,很多网站为了实现推送技术,所用的技术都是轮询。轮询是在特定的的时间间隔(如每1秒),由浏览器对服务器发出HTTP请求,然后由服务器返回最新的数据给客户端的浏览器。这种传统的模式带来很明显的缺点,即浏览器需要不断的向服务器发出请求,然而HTTP请求可能包含较长的头部,其中真正有效的数

阅读全文 →

爬取网站思路

分析网站

爬取一个网站首先要了解这个网站,可以从以下几点去分析你要爬取的网站。

爬取内容

分析你需要哪些内容? 标题,文本内容,链接,tag,图片等等。

分析页面

分析你的入口页面,入口页面中要解析的url,如何进入下一页(深搜,广搜),如何循环。

破防

  • 头文件设置,header,UA
  • 是否使用cookies
  • 验证码如何应对
  • 有没有ip限制,接口调用频次限制

考虑存储设计

考虑用哪种方式存储数据?

  • json
  • mysql
  • ElasticSearch

新建scrapy

新建爬虫虚拟环境

mkvirtualenv my_spider --python==python3.7/python.e

阅读全文 →

Django2.1.1与xadmin0.6.0遇到的坑

Django2.1.1与xadmin0.6.0遇到的坑

(1)django2.0把from django.core.urlresolvers修改成了django.urls

异常信息:
ModuleNotFoundError: No module named 'django.core.urlresolvers'
解决方案:
修改site-packages\xadmin-0.6.1-py3.6.egg\xadmin\models.py
将from django.core.urlresolvers import NoReverseMatch, reverse修改为from django.urls i

阅读全文 →

jmeter-常用功能

正则表达式提取器

有时候我们要测的接口参数需要另一个接口参数返回的结果时,就可以用正则表达式提取器

  1. 右键你的http请求 --> 添加 --> 后置处理器 --> 正则表达式提取器
  2. 要检查的响应字段 选择 主体
  3. 其他填写例如下表:
# 当我们的响应数据为如下这种时
{
    "code":0,
    "hint":"success",
    "msg":"成功",
    "token":"123456",
}
引用名称: token
正则表达式: "token":"(.+?)"
模板: $1$
匹配数字(0代表随机): -1
缺省值: n

阅读全文 →

jmeter-http请求

第一步-打开jmeter创建线程组

右键测试计划--> 添加 --> Threads(Users) --> 线程组

第二步-选择线程组创建HTTP请求默认值

右键线程组--> 添加 -->配置元件 --> HTTP请求默认值

在 服务器名称或Ip: 输入框内输入要测试的host,例如:

服务器名称或Ip: 127.0.0.1
端口号: 8000

第三步-创建HTTP信息头管理器

右键线程组--> 添加 -->配置元件 --> HTTP信息头管理器

点击 添加 输入请求头信息,例如:

名称 值
Content-

阅读全文 →

爬取拉钩网

数据预览

编写lagou.py

文件位于 LagouSpider/spiders/lagou.py

导包

import scrapy
import pickle
from scrapy.linkextractors import LinkExtractor
from scrapy.spiders import CrawlSpider, Rule
from ..items import LagouJobItemLoader, LagouJobItem
from LagouSpdier.utils.common import get_md5
from datetime import dat

阅读全文 →

安装django 博客

环境

升级系统

sudo apt update
sudo apt upgrade -y

待完成更新之后,建议重新启动下系统,再进行后面的操作。终端下执行:

sudo reboot

待系统启动后,可以开始安装依赖的mysql以及python环境了。

安装 依赖

sudo apt install mysql-server -y #安装mysql
sudo apt install python3-dev python3-pip python-pip memcached -y #安装pip和memcached
sudo apt install supervisor -y
sudo apt instal

阅读全文 →