📜  在 Django 中运行额外的脚本

📅  最后修改于: 2022-05-13 01:54:28.618000             🧑  作者: Mango

在 Django 中运行额外的脚本

当您有一些适用于 Web 开发和Python 的新想法时,总是需要运行额外的脚本或进程!!!它总是。

它可以是任何可能包括数据加载、处理和数据清理的脚本,也可以是任何 ML 阶段,当应用程序直接在视图或模型中提供业务逻辑并不总是最好的时候。由于 Django 约定指的是“瘦视图”,我们必须尝试修剪逻辑并尝试将其嵌入其他一些文件中。

包中的 Django 扩展,使您能够运行使用 pip 安装它所需的额外脚本,使用终端并键入

pip install django-extensions        

在 setting.py 文件中找到的已安装应用程序中添加 django-extensions

INSTALLED_APPS = [
    ...
    ...
    'django_extensions',
]

现在在您的项目中创建一个名为 scripts 的文件夹,该文件夹将包含您可以执行的所有Python文件
添加一个名为 '__init__.py' 的空Python文件,这指定了 Django 项目中的脚本



创建将包含您需要执行的代码的新文件,命名您喜欢的任何内容

示例:在运行服务器之前将数据从 CSV 文件加载到数据库

加载文件

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