欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Django執(zhí)行指定腳本的幾種方法

 更新時間:2022年02月08日 12:40:47   作者:knktc  
這篇文章主要給大家介紹了關于Django執(zhí)行指定腳本的幾種方法,文中通過實例代碼介紹的非常詳細,對大家學習或者使用Django具有一定的參考學習價值,需要的朋友可以參考下

前言

用Django寫項目,遇到臨時需要處理數(shù)據(jù)庫的問題時,會考慮直接讓腳本在項目環(huán)境中運行,這樣就可以直接用定義好的模型和方法了。

這里提供幾種方法,通過Django執(zhí)行指定的腳本,讓腳本直接在Django項目的環(huán)境中來運行。

Django Shell

Django自帶的shell其實就加載了項目的各種環(huán)境變量,網(wǎng)上描述得也很多,直接這么跑就可以了:

python manage.py shell < script.py

簡單是非常簡單,不足的地方就是不好加參數(shù)進去,而且喜歡寫main的話也不好讓腳本跑起來。

自定義Command

也可以通過自定義一個簡單的command來實現(xiàn)需要的效果,以下是最近寫的一個示例,可支持執(zhí)行指定的腳本文件,同時還能加入更多的腳本執(zhí)行參數(shù):

"""
@author:knktc
@contact:me@knktc.com
"""

import os
import sys
import argparse
from django.core.management.base import BaseCommand


class Command(BaseCommand):
    help = 'Run script in current project environment'

    def add_arguments(self, parser):
        parser.add_argument('script', type=str, nargs=argparse.REMAINDER,
                            help='script file path and args')

    def handle(self, *args, **options):
        # get args
        args = options['script']
        script_path = args[0]

        # check file existence
        if not os.path.isfile(script_path):
            self.stderr.write(f'No such file: [{script_path}]')
            sys.exit(1)

        # set args
        sys_argv = [script_path] + args[1:]
        sys.argv = sys_argv

        # run
        with open(script_path, 'r') as f:
            exec(f.read(), {'__name__': '__main__'})

把這段代碼放到任意app的management/commands目錄下,命名為run_script.py即可,此后就可以一勞永逸地使用這個自定義的命令了。

此后,運行指定的腳本可參考以下的命令:

python manage.py run_script your_script arg1 arg2 -v arg3

Django extensions

此外還可以通過django-extensions這個包內(nèi)置的runscript來實現(xiàn),這個方法可參考文檔:https://django-extensions-zh.readthedocs.io/zh_CN/latest/runscript.html

總結

到此這篇關于Django執(zhí)行指定腳本的幾種方法的文章就介紹到這了,更多相關Django執(zhí)行指定腳本內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • 推薦值得學習的12款python-web開發(fā)框架

    推薦值得學習的12款python-web開發(fā)框架

    這篇文章主要介紹了值得學習的12款python-web開發(fā)框架,幫助大家更好的理解和學習Python web開發(fā),感興趣的朋友可以了解下
    2020-08-08
  • Python遍歷pandas數(shù)據(jù)方法總結

    Python遍歷pandas數(shù)據(jù)方法總結

    本篇文章給大家詳細介紹了Python中遍歷pandas數(shù)據(jù)方法以及相關注意點,對此有興趣的朋友參考學習下吧。
    2018-02-02
  • python從子線程中獲得返回值的方法

    python從子線程中獲得返回值的方法

    今天小編就為大家分享一篇python從子線程中獲得返回值的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-01-01
  • Python中三元表達式的幾種寫法介紹

    Python中三元表達式的幾種寫法介紹

    今天小編就為大家分享一篇關于Python中三元表達式的幾種寫法介紹,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2019-03-03
  • 淺談Python之Django(四)

    淺談Python之Django(四)

    這篇文章主要介紹了Python3中的Django,小編覺得這篇文章寫的還不錯,需要的朋友們下面隨著小編來一起學習學習吧,希望能夠給你帶來幫助
    2021-10-10
  • python 中文編碼亂碼問題的解決

    python 中文編碼亂碼問題的解決

    中文編碼問題一直是程序員頭疼的問題,本文將盡量用通俗的語言帶大家徹底的了解字符編碼以及Python2和3中的各種編碼問題。感興趣的可以了解一下
    2021-11-11
  • 基于python實現(xiàn)垂直爬蟲系統(tǒng)的方法詳解

    基于python實現(xiàn)垂直爬蟲系統(tǒng)的方法詳解

    這篇文章主要為大家詳細介紹了python實現(xiàn)垂直爬蟲系統(tǒng)的方法,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2022-03-03
  • 23個很棒的Python腳本集合分享(迷你項目)

    23個很棒的Python腳本集合分享(迷你項目)

    這篇文章主要為大家詳細介紹了23個很棒的Python腳本的集合(迷你項目),文中的示例代碼講解詳細,對我們了解Python有一定幫助,感興趣的可以了解一下
    2022-11-11
  • Python?pygame派生精靈和精靈組創(chuàng)建敵機

    Python?pygame派生精靈和精靈組創(chuàng)建敵機

    這篇文章主要為大家介紹了Python?pygame派生精靈和精靈組創(chuàng)建敵機示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-08-08
  • Python3 模塊、包調(diào)用&路徑詳解

    Python3 模塊、包調(diào)用&路徑詳解

    下面小編就為大家?guī)硪黄狿ython3 模塊、包調(diào)用&路徑詳解。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-10-10

最新評論