摘要:docker,linux 问题复现 一般都是用root用户启动和操作docker,当是普通用户运行容器启动项目时报错没有权限 原因分析 docker守护进程后台启动时,...
摘要:docker,linux 问题复现 一般都是用root用户启动和操作docker,当是普通用户运行容器启动项目时报错没有权限 原因分析 docker守护进程后台启动时,...
前言 前段时间大火的微信小程序'羊了个羊',让我对微信小程序充满了好奇,萌发自学微信小程序的冲动。YY一下自己是不是也可以做出一个啥子小程序呢。 经过两个星期的努力,终于完成...
前言 前段时间完成了初版的可配置装盘后,就在考虑下一个迭代的内容选什么好呢?想到微信小程序的优势除了无需下载且接近原生的体验,还能依靠微信巨大的用户群体,更容易链接转换成小程...
好久没有更新文章了……这一年过得太忙。准备一篇个人认为值得拿出来分享的文章真的需要很多时间,如果你喜欢,请评论、点赞让我知道,我会抽更多的时间来更新一些分享给大家,谢谢! 此...
一、ORM 框架简介 对象-关系映射(Object/Relation Mapping,简称ORM),是随着面向对象的软件开发方法发展而产生的。面向对象的开发方法是当今企业级应...
问题: 1.django的ORM语句和原生sql语句大相径庭,在项目开发中如何确保写的ORM语句与自己想要的sql语句师一直的呢??? 解决方案: 方案1: 当是查询语句且查...
什么是 rebase? git rebase 你其实可以把它理解成是“重新设置基线”,将你的当前分支重新设置开始点。这个时候才能知道你当前分支于你需要比较的分支之间的差异。原...
drf 也可以使用 cbv 这种视图,不过其对 Django 的 view 做了一些封装。drf 最底层的 view 是 APIView,它继承 Django 的 View。...
Django日志配置包括下面4个部分: Loggers Handlers Filters Formatters 以上4个部分的具体说明及含义,可参见另一篇文章:python日...
欢迎移步我的博客阅读:《使用 Git 管理项目 - reset 与 rebase》 在日常管理项目的过程中,可能会遇到提交的 commit/merge 并不是想要的,或是操作...
相关资源 Django官方文档unittest文档 简单的例子 关于django的单元测试,需要知道的是 对于每一个测试方法都会将setUp()和tearDown()方法执行...
一. 什么是RESTful API以及Django RestFramework 1. 协议 API与用户的通信协议,总是使用HTTPS协议。 2. 域名 应该尽量将API部署...
当页面因需要展示的数据条目过多,导致无法在一个页面全部显示。这时,页面经常会采用分页形式进行展示,然后每页显示 20 或者 50 等条数据。分页经常在网站上随处可见,它大概是...
写死账号密码的中间件代码如下:
class AuthDownloaderMiddleware(object):
def process_request(self,request,spider):
request.headers['User-Agent'] = 'Mozilla/5.0'
authstr='username'+':'+'password'
auth=str(base64.b64encode(authstr.encode('utf-8')), 'utf-8')
request.headers['Authorization'] = 'Basic ' + auth
scrapy处理HttpDigestAuth认证由于requests类库自带了Http Digest Auth,故搬砖到scrapy。加入如下MiddleWare,并在settings.py文件中配置HTTP_DIGEST...
亲测有效
scrapy处理HttpDigestAuth认证由于requests类库自带了Http Digest Auth,故搬砖到scrapy。加入如下MiddleWare,并在settings.py文件中配置HTTP_DIGEST...
不好意思没调通啊,稍微改造一下,因为scrapy 使用了py3,已经简化到直接写在header里面了,弄个简单的中间件也可以
class HTTPDigestAuthMiddleWare(object):
def __init__(self, username, password):
self.username = username
self.password = password
@classmethod
def from_crawler(cls, crawler):
s = cls(crawler.settings.get('HTTP_DIGEST_USERNAME'),
crawler.settings.getlist('HTTP_DIGEST_PASSWORD'))
crawler.signals.connect(s.spider_opened, signal=signals.spider_opened)
return s
def spider_opened(self, spider):
spider.logger.info('Spider opened: %s' % spider.name)
def get_authorization(self):
authstr = self.username + ':' + self.password[0]
authstr = str(base64.b64encode(authstr.encode('utf-8')), 'utf-8')
return authstr
def process_request(self, request, spider):
auth = self.get_authorization()
request.headers['Authorization'] = 'Basic '+auth
return None
首先先献上 我的 GitBook 地址,可以在我的 博客 导航栏处找到,下面进行相关的介绍。 背景 由于之前都把零散的知识都写在 Gist 上,要查找的时候不是很系统化,所以...
这里以腾讯云主机Ubuntu16.04主机为例,演示过程从拿到服务器主机到装好Python虚拟环境为止。 1、安装前的准备,拿到腾讯云Ubuntu16.04主机后,首先是用r...