Database
数据库连接
内置 quickdb 模块,含有 redis、mongo、mysql、kafka、postgresql 的连接,引用方式如下:
from palp import conn
conn.redis_conn # 接原始命令
conn.pg_conn # 基于 sqlalchemy 魔改版本
conn.mysql_conn # 基于 sqlalchemy 魔改版本
conn.mongo_conn # 基于 mongo_conn 添加了部分方法,如 iter
conn.kafka_conn # kafka_conn.send 即可
注意:内置了 SpiderRecycleMiddleware 中间件,创建的连接会自动关闭
具体的使用可以看 quickdb 模块,这里强烈推荐 quickdb 针对 sqlalchemy 的数据库模板导出功能:
from quickdb import PostgreSQLAlchemyEngine
pg_conn = PostgreSQLAlchemyEngine(
host=settings.PG_HOST,
port=settings.PG_PORT,
db=settings.PG_DB,
user=settings.PG_USER,
pwd=settings.PG_PWD,
**settings.PG_CONFIG
)
pg_conn.reverse_table_model(path='./models.py', tables=['xxx']) # path 可以自动生成
redis
配置
REDIS_DB = 0
REDIS_HOST = '127.0.0.1'
REDIS_PORT = '6379'
REDIS_PWD = None
使用
from palp.conn import redis_conn
redis_conn.info()
postgresql
基于 sqlalchemy 进行修改,含有很多方法
配置
PG_HOST = None
PG_PORT = None
PG_DB = None
PG_USER = None
PG_PWD = None
使用
from palp.conn import pg_conn
pg_conn.execute()
mysql
基于 sqlalchemy 进行修改,含有很多方法
配置
MYSQL_HOST = '127.0.0.1'
MYSQL_PORT = 3306
MYSQL_DB = None
MYSQL_USER = None
MYSQL_PWD = None
使用
from palp.conn import mysql_conn
mysql_conn.execute()
mongo
基于 pymongo 进行修改,部分新增方法如下:
- iter:迭代数据库所有数据
- upsert:插入或更新
配置
MONGO_HOST = None
MONGO_PORT = None
MONGO_USER = None
MONGO_PWD = None
使用
from palp.conn import mongo_conn
col = mongo_conn.get_collection(db='x', col='xx')
for data in col.iter():
print(data)
kafka
基于 kafka-python 修改
配置
KAFKA_SERVER = None
使用
from palp.conn import kafka_conn
kafka_conn.send()