Python常用库学习笔记(一)

引言

在实习过程中,组内有许多Python写的脚本,其中使用到很多之前没有接触过的库,所以想以使用示例,简单记录一下。
本篇包括apscheduler、sqlachemy、argparse的记录。

1、apscheduler

apscheduler是Python的定时任务框架(安装:pip install apscheduler),包含了四个组件:

  • 触发器 triggers:描述一个任务何时被触发,有三种内置触发类型,date,一次性执行日期;interval,间隔多长时间执行一次;cron,类似Linux的cron任务
  • 作业存储器 job stores:作业被存放的位置,可存储在内存(默认),各种数据库中
  • 执行器 executors:处理作业的运行,有线程池(默认)和进程池,当作业完成时,执行器将会通知调度器
  • 调度器 schedulers:任务调度器,通过它配置作业存储器、执行器和触发器,添加、修改和删除任务。**开发人员通常与调度器打交道。**调度器有很多类型,适用于不同的场景
    • BlockingScheduler,适用于调度程序是进程中唯一运行的线程,调用start函数会阻塞当前线程
    • BackgroundScheduler,使用于调度程序在应用程序的后台运行,调用start后主线程不会阻塞
    • 还有其他类型……

收藏学习博客:https://blog.csdn.net/somezz/article/details/83104368

from apscheduler.schedulers.blocking import BlockingScheduler
from datetime import datetime


def task1():
    print('Task1:时间是' + str(datetime.now()))


def task2():
    print('Task2:时间是' + str(datetime.now()))


if __name__ == '__main__':
    scheduler = BlockingScheduler()
    scheduler.add_job(task1, 'interval', seconds=3)
    scheduler.add_job(task2, 'cron', hour=16, minute=19)
    scheduler.start()

2、SQLalchemy

这是Python的一个ORM工具,对数据库的操作可以通过操纵Python对象,而避免了原生复杂的SQL语句。
安装方法:pip install SQLalchemy,但是我安装后直接使用会报No module named 'MySQLdb’的导包错误,需要再执行pip install mysqlclient
使用方法主要分为两步,编写与数据库表关联的Python类;通过Session操作数据库。

# model.py
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy import Column, Integer, String

Base = declarative_base()
# declarative_base()是sqlalchemy内部封装的一个方法,通过构造一个基类,这个基类和它的子类,可以将Python类和数据库表关联映射起来


class Users(Base):
    __tablename__ = "t_users"  # 表名

    Fid = Column(Integer, primary_key=True)  # Column表示数据库的列(字段)
    Fname = Column(String(255), unique=True)
# main.py
from sqlalchemy import create_engine
from sqlalchemy.orm import sessionmaker
from model import Base
from model import Users


def init_db():
    engine = create_engine(
        "mysql://root:root@localhost:3306/test?charset=utf8",
        echo=True,  # 当设置True时会将ORM语句转化为sql语句打印,一般debug的时候用
        pool_size=8,  # 连接池的大小,默认为5个,
        pool_recycle=60*30  # 设置时间以限制数据库多久没连接自动断开
    )  # 创建连接
    Base.metadata.create_all(engine)  # 创建表,如果存在则忽略
    # 创建Session
    DBSession = sessionmaker(bind=engine)
    session = DBSession()
    return session


if __name__ == '__main__':
    session = init_db()
    Xiao_ming = Users(Fid=1, Fname='小明')
    Xiao_hong = Users(Fid=2, Fname='小红')
    session.add(Xiao_ming)  # 添加记录小明
    session.add(Xiao_hong)  # 添加记录小红
    session.commit()
    session.query(Users).filter_by(Fid=1).update({'Fname': 'admin'})  # 将Fid=1的记录Fname改为admin
    session.commit()
    update_one = session.query(Users).filter_by(Fid=1).first()  # 查询Fid=1的记录的第一条
    print(str(update_one.Fid)+' '+update_one.Fname)
    session.close()

3、argparse

argparse是Python内置的模块,可以使得程序员方便地对命令行传入参数进行配置和管理。
argparse的使用主要分为三个步骤:

  • 创建ArgumentParser()对象
  • 调用add_argument()方法添加参数
  • 使用parse_args()解析参数

收藏学习博客:https://zhuanlan.zhihu.com/p/56922793

import argparse


def main():
    parser = argparse.ArgumentParser(description="argparse示例程序")
    parser.add_argument('-n', '--name', type=str, default='admin', help='姓名')
    parser.add_argument('-y', '--year', type=int, default=20, help='年龄')
    args = parser.parse_args()
    print('姓名:%s' % args.name)
    print('年龄:%d' % args.year)


if __name__ == '__main__':
    main()
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值