python - 如何定期运行带参数的函数?
问题描述
我的系统上有一个表格(DashboardData
模型),每个用户都要填写。在这种形式中,我们要求为另一个系统提供用户名、密码和要更新的范围。此范围内的选项为每周一次、每月一次和每年一次。
根据用户选择的时间间隔,我将在这些时间间隔运行一个函数。在这个函数中,我将从用户填写的表单中获取用户名和密码作为参数。例如,在表单用户名、密码中,选择每周一次,然后我必须每周运行一次 myFunction(username, password)。
我试着用apscheduler
这个。但是在apps.py 中我无法访问request.user,所以我无法获取数据。我必须使用 request.user 来运行我的功能。
表格.py
class SetupForm(forms.ModelForm):
# Time
PERIOD = (
('168', 'Once a week'),
('720', 'Once a month'),
('8766 ', 'Once a year'),
)
n_username = forms.CharField()
n_password = forms.CharField(widget=forms.PasswordInput)
period = forms.CharField(max_length=200, widget=forms.Select(choices=PERIOD)))
class Meta:
model = DashboardData
fields = ('n_username', 'n_password','period')
模型.py
class DashboardData(models.Model):
user = models.ForeignKey(UserProfile, on_delete=models.CASCADE, null=True) # request.user
n_username = models.CharField(max_length=250)
n_password = models.CharField(max_length=250)
period = models.CharField(max_length=250)
函数.py
class myFunction():
def __init__(self, n_user, n_password):
self.time = datetime.now().strftime("%Y-%m-%d")
self.location = a_url
self.static_fields = {}
self.index_name = "pre-" + self.zaman
self.download_all(n_user, n_password)
self.send_it()
应用程序.py
class DashboardConfig(AppConfig):
default_auto_field = 'django.db.models.BigAutoField'
name = 'dashboard'
def ready(self):
start()
解决方案
推荐阅读
- sql - 如何做复杂的 COUNT()
- list - 将事物列表转换为子列表列表
- python - 如何打印一个短语 n 次?
- gradle - 我们可以将代码库中的 Gradle 插件作为 JAR 文件提供吗
- python - 网站的 Django url 未指向正确的页面
- c - 包含 stdio 后 C 程序看不到 snprintf
- mysql - 修复 json 数据意外双重编码
- android - Flutter Erorr 找不到方法 android() 用于 org.gradle.api.Project 类型的项目“:app”的参数
- anaconda - 无法在 Anaconda Navigator 中安装 Python 包
- r - 如何对 R 中的列中的值进行分组或分类?