iT邦幫忙

2022 iThome 鐵人賽

DAY 4
1
自我挑戰組

從0 到 50 初探 如何使用Django 架構出一個網站系列 第 4

Day4 -Django的控制中樞- mange.py和django-admin

  • 分享至 

  • xImage
  •  

前言

延續昨天我們所建置的project,在繼續建置Django的路上,想先跟大家分享一下在Django用來控制專案大小事的django-admin和manage.py,談談他們的用途以及如何去使用!以及兩者的差異與使用上該如何選擇!

mange.py和django-admin

昨天有提到manage.py可以幫助我們管理Django的專案,不知道你們會不會有疑問都是在管理專案,manage.py和django-admin的差別在哪裡呢? 在什麼時候需要使用他們?
首先我們可以透過 --help來查看兩者。

manage.py

(django_env) PS C:\Users\user\Django_website\Django_project>python manage.py --help

Type 'manage.py help <subcommand>' for help on a specific subcommand.

Available subcommands:

[auth]
    changepassword
    createsuperuser

[contenttypes]
    remove_stale_contenttypes

[django]
    check
    compilemessages
    createcachetable
    dbshell
    diffsettings
    dumpdata
    flush
    inspectdb
    loaddata
    makemessages
    makemigrations
    migrate
    optimizemigration
    sendtestemail
    shell
    showmigrations
    sqlflush
    sqlmigrate
    sqlsequencereset
    squashmigrations
    startapp
    startproject
    test
    testserver

[sessions]
    clearsessions

[staticfiles]
    collectstatic
    findstatic
    runserver

django-admin

(django_env) PS C:\Users\user\Django_website\Django_project> django-admin --help

Type 'django-admin help <subcommand>' for help on a specific subcommand.

Available subcommands:

[django]
    check
    compilemessages
    createcachetable
    dbshell
    diffsettings
    dumpdata
    flush
    inspectdb
    loaddata
    makemessages
    makemigrations
    migrate
    optimizemigration
    runserver
    sendtestemail
    shell
    showmigrations
    sqlflush
    sqlmigrate
    sqlsequencereset
    squashmigrations
    startapp
    startproject
    test
    testserver

可以看到在基本上兩者能做的事情都是一樣的,但是manage.py除了本身的管理,還能對靜態文件、session和權限進行一些操作。
在我查詢官方文件時看到它的說明,寫到兩者基本上是一樣的,但我實際試著操作時發現,mange.py還是多了[auth][contenttypes][sessions][staticfiles] 等功能。
而且當你使用Django時,你必須告訴他你在使用哪一種設定,貼心的manage.py 還會幫你設置 DJANGO_SETTINGS_MODULE 的環境變數並指向 setting.py。
因此建議在使用時還是以使用manage.py為優先。

如果你想要了解指令可以做什麼和怎麼使用可以在指令加上 -h,就可以看到簡單的介紹和用法,以我們使用過的runserver為例。
在usage中就可以看runserver可以怎麼去使用,並在option中看到語法的解釋,大家如果有興趣也可以稍微去試著查看。

(django_env) PS C:\Users\user\Django_website\Django_project> python manage.py runserver -h

usage: manage.py runserver [-h] [--ipv6] [--nothreading] [--noreload] [--nostatic] [--insecure] [--version] [--settings SETTINGS] [--pythonpath PYTHONPATH] [--no-color]
                           [--force-color] [--skip-checks]
                           [addrport]

Starts a lightweight web server for development and also serves static files.

positional arguments:
  addrport              Optional port number, or ipaddr:port

options:
  -h, --help            show this help message and exit
  --ipv6, -6            Tells Django to use an IPv6 address.
  --nothreading         Tells Django to NOT use threading.
  --noreload            Tells Django to NOT use the auto-reloader.
  --nostatic            Tells Django to NOT automatically serve static files at STATIC_URL.
  --insecure            Allows serving static files even if DEBUG is False.
  --version             Show program's version number and exit.
  --settings SETTINGS   The Python path to a settings module, e.g. "myproject.settings.main". If this isn't provided, the DJANGO_SETTINGS_MODULE environment variable will be      
                        used.
  --pythonpath PYTHONPATH
                        A directory to add to the Python path, e.g. "/home/djangoprojects/myproject".
  --no-color            Don't colorize the command output.
  --force-color         Force colorization of the command output.
  --skip-checks         Skip system checks.

這些就是今天的內容了,是不是又對Django有新的瞭解了呢,明天我們就會開始App的建置囉!

參考資料&推薦閱讀

https://docs.djangoproject.com/en/4.1/ref/django-admin/


上一篇
Day3 -Django Project 建置
下一篇
Day5 -Django APP的架構與建置
系列文
從0 到 50 初探 如何使用Django 架構出一個網站30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言