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()