python中的Cron解析器和验证

sti*_*ing 5 python django cron

我目前在python中运行django Web应用程序,我将用户输入的cron条目存储到数据库中.我想知道是否有任何python库/包将在我将它们存储到数据库之前验证这些条目.通过验证我的意思是正确的语法以及正确的范围(例如:月份不能是15).有没有人有什么建议?谢谢!

kos*_*ter 10

由于接受的答案很旧,因此同一个库croniter.is_valid()现在有一个方法。从文档

>>> croniter.is_valid('0 0 1 * *')  # True
>>> croniter.is_valid('0 wrong_value 1 * *')  # False
Run Code Online (Sandbox Code Playgroud)


Roc*_*key 9

Croniter包好像它可能会得到你所需要的.来自文档的示例:

>>> from croniter import croniter
>>> from datetime import datetime
>>> base = datetime(2010, 1, 25, 4, 46)
>>> iter = croniter('*/5 * * * *', base)  # every 5 minites
>>> print iter.get_next(datetime)   # 2010-01-25 04:50:00
>>> print iter.get_next(datetime)   # 2010-01-25 04:55:00
>>> print iter.get_next(datetime)   # 2010-01-25 05:00:00
>>>
>>> iter = croniter('2 4 * * mon,fri', base)  # 04:02 on every Monday and Friday
>>> print iter.get_next(datetime)   # 2010-01-26 04:02:00
>>> print iter.get_next(datetime)   # 2010-01-30 04:02:00
>>> print iter.get_next(datetime)   # 2010-02-02 04:02:00
Run Code Online (Sandbox Code Playgroud)

根据代码,它似乎也对输入的格式进行验证.可能你已经遇到过这个,但以防万一:)