摘要: 1、一对多 a) 查询,主表查询子表所有数据 如果在子表中,添加了related_name, 那么父表获取子表的数据不再是使用子表的类名小写_set.all()获取,那么使用related_name_set.all()获取 b) 新增: 先添加主表,再添加子表 c) 修改: a) 可以一次修改主表下 阅读全文
posted @ 2019-03-07 18:43 一念之间的抉择 阅读(1063) 评论(0) 推荐(0) 编辑
摘要: 1 vi简介 vi是“Visual interface”的简称,它在Linux上的地位就仿佛Edit程序在DOS上一样。它可以执行输出、删除、查找、替换、块操作等众多文本操作,而且用户可以根据自己的需要对其进行定制。Vi不是一个排版程序,它不象Word或WPS那样可以对字体、格式、段落等其他属性进行 阅读全文
posted @ 2019-03-07 18:36 一念之间的抉择 阅读(272) 评论(0) 推荐(0) 编辑
摘要: 管理命令 用户管理: useradd, userdel, usermod, passwd, chsh, chfn, finger, id, chage 组管理: groupadd, groupdel, groupmod, gpasswd 权限管理: chown, chgrp, chmod, umas 阅读全文
posted @ 2019-03-07 18:33 一念之间的抉择 阅读(157) 评论(0) 推荐(0) 编辑
摘要: agents = [ "Mozilla/5.0 (Linux; U; Android 2.3.6; en-us; Nexus S Build/GRK39F) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1", 阅读全文
posted @ 2019-03-07 18:28 一念之间的抉择 阅读(270) 评论(0) 推荐(0) 编辑
摘要: 1. 引入 我们平常写的爬虫都是单个线程的?这怎么够?一旦一个地方卡到不动了,那不就永远等待下去了?为此我们可以使用多线程或者多进程来处理。 2. 如何使用 爬虫使用多线程来处理网络请求,使用线程来处理URL队列中的url,然后将url返回的结果保存在另一个队列中,其它线程在读取这个队列中的数据,然 阅读全文
posted @ 2019-03-07 18:27 一念之间的抉择 阅读(486) 评论(0) 推荐(0) 编辑
摘要: Selenium 处理滚动条 selenium并不是万能的,有时候页面上操作无法实现的,这时候就需要借助JS来完成了 当页面上的元素超过一屏后,想操作屏幕下方的元素,是不能直接定位到,会报元素不可见的。这时候需要借助滚动条来拖动屏幕,使被操作的元素显示在当前的屏幕上。滚动条是无法直接用定位工具来定位 阅读全文
posted @ 2019-03-07 18:25 一念之间的抉择 阅读(1204) 评论(0) 推荐(0) 编辑
摘要: 问题 有的页面的很多部分都是用JS生成的,而对于用scrapy爬虫来说就是一个很大的问题,因为scrapy没有JS engine,所以爬取的都是静态页面,对于JS生成的动态页面都无法获得 官网http://splash.readthedocs.io/en/stable/ 解决方案 利用第三方中间件来 阅读全文
posted @ 2019-03-07 18:23 一念之间的抉择 阅读(2539) 评论(0) 推荐(0) 编辑
摘要: 1. Scrapy-Request和Response(请求和响应) Scrapy的Request和Response对象用于爬网网站。 通常,Request对象在爬虫程序中生成并传递到系统,直到它们到达下载程序,后者执行请求并返回一个Response对象,该对象返回到发出请求的爬虫程序。 爬虫Requ 阅读全文
posted @ 2019-03-07 18:18 一念之间的抉择 阅读(224) 评论(0) 推荐(0) 编辑
摘要: 使用CentOS6 标准版系统(Linux系统下安装) 因为CentOS默认是python2 安装 python3 安装装python3的环境 解压压缩包 tar -xf python3.6.1.tar (参考Linux安装python3) 安装scrapy 安装 scrapy-redis 1. 介 阅读全文
posted @ 2019-03-07 18:16 一念之间的抉择 阅读(232) 评论(0) 推荐(0) 编辑
摘要: 1. Splash介绍 Splash是一个JavaScript渲染服务,是一个带有HTTP API的轻量级浏览器,同时它对接了Python中的Twisted和QT库。利用它,我们同样可以实现动态渲染页面的抓取 2. 安装 2.1 安装docker(安装方法看上一篇) https://www.cnbl 阅读全文
posted @ 2019-03-07 18:11 一念之间的抉择 阅读(4138) 评论(0) 推荐(0) 编辑
摘要: 一、介绍 Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。二、 使用docker toolbox安装docker 对于Windows用户来说, 阅读全文
posted @ 2019-03-07 18:08 一念之间的抉择 阅读(1712) 评论(0) 推荐(0) 编辑
摘要: 1、Linux命令: 查看服务器的版本: cat /etc/redhat-release clear清屏 2、更新或者安装依赖库:都是使用yum进行安装 yum install gcc-c++ yum install wget openssl-devel bzip2-devel expat-deve 阅读全文
posted @ 2019-03-07 12:27 一念之间的抉择 阅读(9263) 评论(0) 推荐(0) 编辑
摘要: 服务器: 硬件服务器,类似于电脑,不能断点,ip可以外网访问 web服务器:软件,部署项目,项目运行的一个环境 在高并发情况下:解决服务器“很卡”问题: 1、服务器加内存、加固态硬盘提高服务器的读写能力 2、做集群:多台服务器一起工作,怎么工作 Nginx介绍:Nginx是一个web服务器和反向代理 阅读全文
posted @ 2019-03-07 12:24 一念之间的抉择 阅读(179) 评论(0) 推荐(0) 编辑
摘要: 1、Django ORM操作MySQL数据库 a) 新建MySQL数据库叫db_orm b)新建一个mysql_orm的项目 c) 在项目的settings下修改DATABASE'default': { 'ENGINE': 'django.db.backends.mysql', 'NAME': 'd 阅读全文
posted @ 2019-03-07 12:19 一念之间的抉择 阅读(942) 评论(0) 推荐(0) 编辑
摘要: 1、Django默认是用SQLite3数据库2、使用Navicat打开SQLite3数据库 连接 --> 选择SQLite -> 创建一个连接名字->选择类型是打开还是新建 - >如果是打开需要选择打开的db文件 3、创建模型同时生成对应的表a) 需求:创建一个问题(Question)对应多个选项( 阅读全文
posted @ 2019-03-07 12:15 一念之间的抉择 阅读(304) 评论(0) 推荐(0) 编辑
摘要: 1、导入项目File -> open ->找到项目目录打开即可2、想要执行manage.py下的命令比如:创建应用(startapp)、生成迁移文件(makemigrations appname)、迁移数据库(migrate appname)、shell等 a) 在Ternimal 下执行pytho 阅读全文
posted @ 2019-03-07 12:03 一念之间的抉择 阅读(668) 评论(0) 推荐(0) 编辑
摘要: 用户登录: 1、表单提交 登录页面输入表单数据进行form提交(点击自动提交;自己编写doLogin()方法提交其中doLogin可以前台进行校验) 2、do_login后台业务逻辑处理: a) 获取参数(post获取) b) 基本参数校验,虽然前台会有校验,但后台也要有,避免跳过前台直接访问后台数 阅读全文
posted @ 2019-03-07 12:01 一念之间的抉择 阅读(303) 评论(0) 推荐(0) 编辑
摘要: 1、使用url指令替换应用中的一些url地址的硬编码 在页面比如a标签的href中使用{%url '在urls做映射时添加的name进行替换'%} 页面修改:<li><a href="{% url 'polls:detail' q.id %}">{{ q.question_text }}</a></ 阅读全文
posted @ 2019-03-07 11:58 一念之间的抉择 阅读(324) 评论(0) 推荐(0) 编辑
摘要: 测试跨域问题:1、编写一个view(jsonp)跳转到模板2、模板使用ajax请求一个地址(do_jsonp)3、编写一个view(do_jsonp)返回json串4、测试,如果是同源下进行ajax请求可以获取数据,如果把请求的域名改成localhost那么就会出现一个错误,不能访问其他域名下的数据 阅读全文
posted @ 2019-03-07 11:55 一念之间的抉择 阅读(723) 评论(0) 推荐(0) 编辑
摘要: 1、中间件的作用:类似于一个过滤器,拦截请求或者响应,插入一些公用的业务逻辑2、中间件的定义: 1、在项目下面pro_view的package中编写一个模块mymiddleware,模块中编写一个SimpeMiddleware类继承MiddlewareMixin from django.utils. 阅读全文
posted @ 2019-03-07 11:53 一念之间的抉择 阅读(312) 评论(0) 推荐(0) 编辑