Django | 执行项目下指定的脚本
1 描述
有時候會碰到這樣的場景,對于一些業務升級,我需要把數據庫數據做些處理,同時又想以 Django 項目的環境變量執行腳本,這個時候使用 python 腳本是再適合不過的手段了。
2 使用自帶的 shell
python manage.py shell < script或者
./manage.py shell < script2.1 舉例
2.2 腳本代碼如下:
2.3執行命令
python manage.py shell < script1.py2.4 運行結果如下:
2.4.1 安裝了 ipython(這里版本為 4.2.0)
2.4.2 沒有安裝 ipython
3 使用 django-extensions
手段1:在 app 下面建立一個 scripts 包,然后建立你的腳本
手段2:在項目目錄下面建立一個 scripts 包,然后建立你的腳本
運行腳本命令如下:
python manage.py runscript script_name或者
./manage.py runscript script_name3.1 手段1
3.1.1 針對手段1
3.1.2 腳本如下:
3.1.3 運行命令
python manage.py runscript showadmin3.1.4 執行結果如下
3.2 手段2
3.2.1 針對手段 2
3.2.2 腳本如下:
3.2.3 運行命令
./manage.py runscript showadmin3.2.4 執行結果
3.3 注意
runscript 命令會首先檢查每個 app 下的 scripts 目錄,如果找到對應名字的腳本就會執行.然后檢查 project_dir/scripts 目錄下是否包含符合名字的腳本,如果找到也會執行.也就是說,我們可以在不同的 app 中創建相同名字的腳本,并且都會被執行.
此時有兩個 showadmin.py 文件
運行結果如下:
4 使用自定義命令
這個自行參照文檔
5 使用 migrations
示例如下:
''' 遇到問題沒人解答?小編創建了一個Python學習交流QQ群:857662006 尋找有志同道合的小伙伴, 互幫互助,群里還有不錯的視頻學習教程和PDF電子書! ''' from django.db import migrationsfrom apps.xx.scripts.xx import runclass Migration(migrations.Migration):initial = Truedependencies = [('thirdservice', '0007_auto_20160909_1021'),]operations = [migrations.RunPython(run),]在 run 方法中封裝業務邏輯,這樣更為方便一些
總結
以上是生活随笔為你收集整理的Django | 执行项目下指定的脚本的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python定时任务:apschedul
- 下一篇: Django之session验证的三种姿