启动redis
远程连接配置信息
redis.windows.conf 文件
搜索(CTRL+F):protected
修改 protected-mode yes ==》protected-mode no
注释掉 bind 127.0.0.1 ==》 # bind 127.0.0.1
加入 daemonize no(这个是是否在后台启动不占用一个主程窗口)
可自行决定是否添加这一个操作
保存配置文件,重启redis服务
启动操作
redis-server.exe redis.windows.conf
远程连接 :redis-cli -h host -p port -a password
- 示例:redis-cli -h 192.168.3.2 -p 6379
命令 | 解释 |
---|---|
keys * | 查询所有数据表 |
type key | 查看表中存储数据的类型 |
smembers key | 获得集合中的所有元素 |
flushall | 删除所有 |
setting
DOWNLOAD_DELAY = 3
# 指定使用scrapy-redis的调度器
SCHEDULER = "scrapy_redis.scheduler.Scheduler"
# 指定使用scrapy-redis的去重
DUPEFILTER_CLASS = 'scrapy_redis.dupefilter.RFPDupeFilter'
# 指定排序爬取地址时使用的队列,
# 默认的 按优先级排序(Scrapy默认),由sorted set实现的一种非FIFO、LIFO方式。
SCHEDULER_QUEUE_CLASS = 'scrapy_redis.queue.SpiderPriorityQueue'
# 可选的 按先进先出排序(FIFO)
# SCHEDULER_QUEUE_CLASS = 'scrapy_redis.queue.SpiderQueue'
# 可选的 按后进先出排序(LIFO)
# SCHEDULER_QUEUE_CLASS = 'scrapy_redis.queue.SpiderStack'
# 在redis中保持scrapy-redis用到的各个队列,从而允许暂停和暂停后恢复,也就是不清理redis queues
SCHEDULER_PERSIST = True
# 只在使用SpiderQueue或者SpiderStack是有效的参数,指定爬虫关闭的最大间隔时间
# SCHEDULER_IDLE_BEFORE_CLOSE = 10
# 通过配置RedisPipeline将item写入key为 spider.name : items 的redis的list中,供后面的分布式处理item
# 这个已经由 scrapy-redis 实现,不需要我们写代码
ITEM_PIPELINES = {
# 'example.pipelines.ExamplePipeline': 300,
'scrapy_redis.pipelines.RedisPipeline': 400
}
# 指定redis数据库的连接参数
REDIS_HOST = '10.8.152.26'
REDIS_PORT = 6379
# LOG等级
LOG_LEVEL = 'DEBUG'
#默认情况下,RFPDupeFilter只记录第一个重复请求。将DUPEFILTER_DEBUG设置为True会记录所有重复的请求。
DUPEFILTER_DEBUG =True
# 覆盖默认请求头,可以自己编写Downloader Middlewares设置代理和UserAgent
DEFAULT_REQUEST_HEADERS = {
'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8',
'Accept-Language': 'zh-CN,zh;q=0.8',
'Connection': 'keep-alive',
'Accept-Encoding': 'gzip, deflate, sdch'
}
sqlite3
> 建表sql
"create table IF NOT EXISTS bj_chaoyang(id integer primary key autoincrement, rent char(50), model char(50), area char(50),pay char(50), community char(50), floor char(50),toward char(50), decorate char(50), type_floor char(50),heating char(50), rent_way char(50), business char(50), subway char(50));"
> 插入sql
"INSERT INTO bj_chaoyang(rent, model, area, pay, community, floor, toward, decorate, type_floor, heating, rent_way, business, subway) VALUES ('{}','{}','{}','{}','{}','{}','{}','{}','{}','{}','{}','{}','{}')".format(item['rent'],item['model'],item['area'],item['pay'],item['community'],item['floor'],item['toward'],item['decorate'],item['type_floor'],item['heating'],item['rent_way'],item['business'],item['subway'])
Project_crawl
pip3 install scrapy-redis
pip3 indtall scrapy
Project_Django
MYSQL
-
数据库的名字 rentingDB
-
创建数据库命令 create database rentingDB;
-
数据库权限操作
-
创建用户及设置权限
grant all privileges on rentingDB.* to public_root@'%' identified by "123456";
-
更新权限
flush privileges;
-
远程连接命令
mysql -h 00.00.00.00 -P 3306 -u public_root -p
password:1234
-
Django 配置MySQL数据库
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql', # 数据库引擎
'NAME': 'rentingDB', # 你要存储数据的库名,事先要创建之
'USER': 'public_root', # 数据库用户名
'PASSWORD': '123456', # 密码
'HOST': '00.00.00.00', # 主机
'PORT': '3306', # 数据库使用的端口
}
}
数据库迁移
python3 不支持MySql,可以使用PyMySql代替
pip3 install pymysql
在项目文件夹下的_init_.py
添加如下代码即可。
import pymysql
pymysql.install_as_MySQLdb()
然后在Terminal中执行数据库迁移命令:
python3 manage.py makemigrations
python3 manage.py migrate
Django 使用module.py 操作已有数据库表
针对已有数据库生成对应的models
python3 manage.py inspectdb > ./app/models.py
执行数据库迁移命令
如果遇到报错的问题需要查看是那个字段报错,一般都是主字段没有设置主键需要设置主键,或者在models中没有正常生成主键的操作,需要手动更改
id = models.IntegerField(blank=True, primary_key=True)
from django.shortcuts import render
from app.models import Tt
from django.http import HttpResponse
# Create your views here.
def test(reuqset):
tt = Tt
print(tt.objects.all())
for i in tt.objects.all():
print('*'*20+'start')
print(i.username)
print('*'*20+'end')
return HttpResponse('ok')