国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

Django分析之如何自定義manage命令

2019-11-14 17:27:00
字體:
來源:轉載
供稿:網友

      我們都用過Django的manage.py的命令,而manage.py是在我們創建Django項目的時候就自動生成在根目錄下的一個命令行工具,它可以執行一些簡單的命令,其功能是將Django PRoject放到sys.path目錄中,同時設置DJANGO_SETTINGS_MODULE環境變量為當前project的setting.py文件。我們來看一下代碼:

#!/usr/bin/env pythonimport osimport sysif __name__ == "__main__":    os.environ.setdefault("DJANGO_SETTINGS_MODULE", "SNCRM.settings")    from django.core.management import execute_from_command_line    execute_from_command_line(sys.argv)

在這里腳本會根據execute_from_command_line()方法里傳入的命令來執行相應的結果。也就是說我們可以自己去編寫這個函數可以識別的命令,這樣就可以很大程度上的去拓展manage.py的功能了。

     那么我們該如何去寫這樣一個自定義的manage命令呢?

首先,我們要在apps模塊下建立名字為management的模塊,這樣Django才能自動發現我們的命令,這樣在我們新建立的management模塊中就可以建立我們需要的命令了,當然了,不是所有的py文件系統都會識別為命令的,只有引用了BaseCommand的才能被正確識別,而且我們的命令類要繼承于BaseCommand它才可以。下面就用代碼來演示一下:

#django command importfrom django.core.management.base import BaseCommandclass Command(BaseCommand):    def handle(self, *args, **options):          print 'hello, World !'

這是一個最基本的命令了,使用的時候我們只需要在manage.py后面輸入命令的文件名就可以了。

     當然,上面的例子是最簡單了例子,一般都是在對項目進行初始化的時候才會使用到這個功能,所以我們的腳本一般都會是對數據庫的操作,尤其是我們的項目使用了第三方的ORM框架的時候這個功能就顯得尤為重要了,因為Django的syncdb命令是不能初始化第三方的ORM的,只能是初始化Django自帶的ORM,所以我在使用SQLAlchemy這樣的其他ORM的時候就會常常用到這個功能,特此在這里記錄下來。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 陆良县| 芮城县| 丹凤县| 玛纳斯县| 社旗县| 东方市| 卢龙县| 烟台市| 黄石市| 长治市| 文登市| 乐陵市| 保靖县| 同心县| 长葛市| 修水县| 肥城市| 灌云县| 临澧县| 盱眙县| 营山县| 西盟| 区。| 益阳市| 大化| 金堂县| 潞西市| 岳普湖县| 宜丰县| 贡觉县| 舒城县| 耒阳市| 苍山县| 同仁县| 绍兴县| 绩溪县| 普定县| 陵水| 吉林市| 黄大仙区| 遵化市|