在Django中运行Extra脚本
当你有一些与网络开发有关的新想法时,总是需要运行额外的脚本或进程,而在Python中!!它总是如此。
它可以是任何脚本,可能包括加载数据、处理和清理数据,或任何ML阶段,当制作一个应用程序时,直接在视图或模型中提供业务逻辑并不总是最好的。由于django惯例中提到了 “瘦视图”,我们必须尝试修剪掉这些逻辑,并尝试将其嵌入到其他文件中。
Django扩展包中,使你能够运行额外的脚本,你需要使用pip来安装它,使用终端并输入
pip install django-extensions
在setting.py文件中找到的已安装的应用程序中添加django-extensions。
INSTALLED_APPS = [
...
...
'django_extensions',
]
现在在你的项目中创建一个名为scripts的文件夹,它将包含所有可以执行的python文件
添加一个名为”init.py “的空的Python文件,指定脚本也是Django项目的一部分。
创建新的文件,其中包含你需要执行的代码,名称随你喜欢。
例子。在运行服务器之前,要将数据从CSV文件加载到数据库中
load.py
import csv
from site.models import Destination
def run():
# All data in run method only will be executed
fhand = open('location.csv')
reader = csv.reader(fhand)
next(reader)
for row in reader:
latitude = row[0]
longitude = row[1]
name = row[2]
item = Destination.objects.create(name=name,latitude=latitude,longitude=longitude)
item.save()
print("Data Added")
现在要运行脚本,只需按下面的命令即可,其中’load’是一个文件名
python manage.py runscript load