django manage.py擴(kuò)展自定義命令方法
# django manage.py擴(kuò)展自定義命令
環(huán)境: mac django1.10.3
在實(shí)際的項(xiàng)目開(kāi)發(fā)過(guò)程中,我們可能要執(zhí)行某腳本初始化數(shù)據(jù)庫(kù),可能要啟動(dòng)多個(gè)服務(wù),比如啟動(dòng)celery,redis等。要是直接執(zhí)行python mange.py celery/redis那該多方便啊!,能把這些命令整合到django框架的manage.py中嗎?
示例-初始化數(shù)據(jù)
通過(guò)執(zhí)行python manage.py initdata命令初始化數(shù)據(jù),執(zhí)行此命令后,調(diào)用某數(shù)據(jù)初始化腳本文件,進(jìn)行數(shù)據(jù)初始化。
1.創(chuàng)建項(xiàng)目 myproject
略
2.創(chuàng)建app myapp,并配置settings.py
settings.py
INSTALLED_APPS = [ 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'myapp', ]
3.在myapp下建management.commands模塊
建立后的目錄如下:

4.在commands下建initdata.py文件
#!/usr/bin/env python
# -*- coding: utf-8 -*-
from django.core.management.base import BaseCommand, CommandError
import os
import logging
import subprocess
INTERPRETER = "/usr/bin/python"
class Command(BaseCommand):
def handle(self, *args, **options):
if not os.path.exists(INTERPRETER):
log.error("Cannot find INTERPRETER at path \"%s\"." % INTERPRETER)
dirs = os.path.join(os.path.dirname(__file__), '../../..') # 上上上級(jí)文件目錄名
processor = dirs + "/init/data.py"
pargs = [INTERPRETER, processor]
subprocess.Popen(pargs)
5.編寫data.py
#!/usr/bin/env python # -*- coding: utf-8 -*- if __name__ == '__main__': print 'ok'
6.執(zhí)行python manage.py initdata
以上這篇django manage.py擴(kuò)展自定義命令方法就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
淺談keras保存模型中的save()和save_weights()區(qū)別
這篇文章主要介紹了淺談keras保存模型中的save()和save_weights()區(qū)別,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-05-05
pandas時(shí)間序列之pd.to_datetime()的實(shí)現(xiàn)
本文主要介紹了pandas時(shí)間序列之pd.to_datetime()的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧<BR>2022-06-06
Python數(shù)據(jù)結(jié)構(gòu)之循環(huán)鏈表詳解
循環(huán)鏈表 (Circular Linked List) 是鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)的另一種形式,它將鏈表中最后一個(gè)結(jié)點(diǎn)的指針指向鏈表的頭結(jié)點(diǎn),使整個(gè)鏈表頭尾相接形成一個(gè)環(huán)形,使鏈表的操作更加方便靈活。本文將詳細(xì)介紹一下循環(huán)鏈表的相關(guān)知識(shí),需要的可以參考一下2022-01-01
mac下pycharm設(shè)置python版本的圖文教程
今天小編就為大家分享一篇mac下pycharm設(shè)置python版本的圖文教程,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-06-06
Python爬蟲之Selenium多窗口切換的實(shí)現(xiàn)
這篇文章主要介紹了Python爬蟲之Selenium多窗口切換的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-12-12

