如何解决如何通过脚本自动创建Django模型实例?
我刚接触Django,最近创建了一个网站来在我的祖国对COVID-19数据进行分组和显示。
我正在使用CaseDeclaration模型记录各城市的每日新病例,死亡人数和恢复情况:
class CaseDeclaration(models.Model):
city = models.ForeignKey(City,on_delete=models.CASCADE)
date = models.DateField(default=lambda: CaseDeclaration.latest_date())
new_cases = models.IntegerField(default=0)
new_deaths = models.IntegerField(default=0)
new_recoveries = models.IntegerField(default=0)
source = models.URLField(max_length=200,blank=True)
它可以正常工作,但是我现在正在编写一个脚本,该脚本将自动根据Facebook上本地新闻媒体的出版物创建CaseDeclaration对象的过程。该脚本位于models.py和views.py旁边的 text_extractor.py 文件中。此时,它需要一个txt文件,并将数据提取到字典中,如下所示(键是城市名称):
>>> print(extract_data())
{'non répertorié': {'new_deaths': 6,'new_recoveries': 344},'Antananarivo': {'new_cases': 388},'Ambatondrazaka': {'new_cases': 13},'Toliara': {'new_cases': 9},'Fianarantsoa': {'new_cases': 7},'Mahajanga': {'new_cases': 6},'Ambositra': {'new_cases': 3},'Miarinarivo': {'new_cases': 2},'Toamasina': {'new_cases': 2},'Sambava': {'new_cases': 1}}
日期 extract_date()返回格式8-11-2020作为str。
我现在需要一种方法来获取每个城市的数据并创建模型实例,而无需使用python shell或管理面板。最后,编程脚本以每天执行。
到目前为止我已经尝试过:
- 将模型导入到我的text_extractor.py文件中,然后从那里使用Model()。save(),但是我的文件无法导入模型,而且我不知道如何从那里从服务器运行脚本。 li>
- 为CaseDeclaration创建模型管理器,并为其提供create_from_dict()函数
- 创建一个函数,该函数将创建模型实例,并在每次加载主页时运行它。* 和最新的CaseDeclaration对象都不是今天。另外,在这里,我的自定义.py文件无法识别为模块,因此无法导入。
无论哪种方式最终都能奏效,我自己无法解决这个问题,而且在线资源确实很有限,所以希望您能提供帮助。提前非常感谢您!
编辑:当前代码 text_extractor.py
def extract_data():
return find_data(region_to_cities(join_words(cleanup_covid19(extracted_data))))
def extract_date():
temp = find_date(region_to_cities(join_words(cleanup_covid19(extracted_data))))
date = '-'.join(str(e) for e in temp)
return date
views.py
def extractCaseDeclaration():
from .text_extractor import extract_data,extract_date
data = extract_data()
date = datetime.datetime.strptime(extract_date(),'%m-%d-%Y')
for key,values in data.items():
city = ''
if "-" in key:
city = string.capwords(key,'-')
else:
city = string.capwords(key)
print(city)
city = City.objects.get(name = city)
extractCaseDeclaration()
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。