Cara membuat proyek Django dari templat

Halo lagi! Khusus untuk siswa kursus "Pengembang web dengan Python", kami telah menyiapkan terjemahan lain yang menarik.





Templat proyek Django adalah cara alami untuk menyelesaikan masalah yang muncul ketika format proyek Django default tidak lagi memenuhi persyaratan. Hari ini di panduan ini Anda akan belajar cara membuat proyek Anda sendiri dari sebuah template.

Apa itu templat proyek di Django?


Salah satu fitur Django yang kurang dikenal adalah kemampuan untuk membuat proyek dari templat, yaitu struktur direktori khusus.

Ini nyaman ketika format proyek default tidak lagi cukup (dan itu pasti tidak akan cukup ketika Anda ingin menggunakan solusi Anda pada produksi, percayalah), atau ketika Anda mencapai titik di mana Anda akan menggunakan konfigurasi yang sama lagi dan lagi untuk banyak proyek di Django.

Template proyek Django tidak lebih dari sebuah proyek dengan struktur direktori kustom yang telah ditentukan yang dapat Anda buat sendiri dalam hitungan menit.
Contoh dari template Django yang populer adalah django-cookiecutter . Juru masak DjangoIni memiliki berbagai fungsi dan konfigurasi yang siap untuk penyebaran mandiri untuk produksi, ini adalah jalur yang dapat digunakan untuk membuat hampir semua proyek baru di Django.

Namun, django-cookiecutter terkadang berlebihan, terutama untuk pemula, jadi sebelum menggunakannya, buat templat Django yang lebih sederhana yang dapat membantu Anda memahami dasar-dasarnya.

Di bagian berikut, Anda akan belajar cara membuat template Anda sendiri.

Cara membuat template proyek Django Anda sendiri


Untuk memulai, buat lingkungan virtual Python di folder yang dipilih dan instal Django (perhatikan bahwa ini adalah empat perintah terpisah):

mkdir project-name && cd $_
python3 -m venv venv
source venv/bin/activate
pip install django

Kemudian buat proyek Django dengan:

django-admin startproject project_name .

Perhatikan namanya, nama itu harus tepat project_name . Setelah itu, buka proyek di editor.

(Perhatikan bahwa dalam contoh kami, saya menggunakan nama_proyek untuk folder dan untuk nama proyek).

Sekarang Anda perlu melihat setiap file dalam proyek dan mengganti semua project_name dengan {{project_name}} (perintah sed single-line baik-baik saja).

File yang perlu Anda modifikasi:

  • manage.py
  • settings.py
  • wsgi.py
  • asgi.py

Seperti yang mungkin sudah Anda duga, variabel {{project_name}} adalah placeholder. Misalnya, di manage.py Anda harus mengganti yang berikut:

# manage.py

def main():
    os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'project_name.settings')
    try:
# omit

Hal ini:

# manage.py

def main():
    os.environ.setdefault('DJANGO_SETTINGS_MODULE', '{{ project_name }}.settings')
    try:
# omit

Di wsgi.py Anda ubah ini:

os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'project_name.settings')

Berikut ini:

os.environ.setdefault('DJANGO_SETTINGS_MODULE', '{{ project_name }}.settings')

Dll

Selain itu, Anda dapat membuat konfigurasi apa pun yang Anda inginkan, atau bahkan lebih baik, parsing pengaturan Django ke file terpisah untuk pengembangan, pengujian dan produksi. Anda akan menemukan contoh di sini .

Sebelum melanjutkan ke langkah berikutnya, pastikan untuk menghapus lingkungan virtual dari templat proyek.

Cara membuat proyek Django dari template Anda sendiri


Sekarang Anda memiliki templat proyek, Anda dapat menggunakannya.

Untuk melakukan ini, buat lingkungan virtual Python baru di folder lain dan instal Django:

mkdir new-django-project && cd $_
python3 -m venv venv
source venv/bin/activate
pip install django

Sekarang, alih-alih hanya menjalankan django-admin startproject , kita akan melewatkan flag --template untuk diinstal dari template kita. Misalkan jika Anda membuat templat di direktori home ~ / project-name Anda, Anda akan melakukannya:

django-admin startproject --template ~/project-name new_django_project .

Perintah ini akan membuat proyek Django baru dari templat.

(Perhatikan bahwa dalam contoh ini, saya menggunakan new-django-project sebagai folder eksternal dan new_django_project untuk nama proyek).

Sekarang Anda mungkin bertanya-tanya apakah mungkin menggunakan templat jarak jauh dari repositori di GitHub, misalnya. Ya tentu saja!

Cara membuat proyek Django dari templat jarak jauh


Bendera --template untuk startproject dapat menerima URL sebagai sumber jarak jauh. Jadi, Anda dapat membuat proyek Django dari templat jarak jauh, misalnya:

django-admin startproject --template https://github.com/username/repo/archive/master.zip new_django_project .

Bonus: templat untuk semuanya


Selain membakukan file yang terkait dengan Django, Anda dapat melakukan hal yang sama untuk file lain dalam proyek ini.

Bayangkan Anda perlu menyebar ke Heroku di mana Procfile diperlukan . Untuk meneruskan Procfile melalui sistem template sehingga {{project_name}} diganti dengan nama sebenarnya dari proyek, Anda dapat menjalankan startproject dengan flag --name .

django-admin startproject --template https://github.com/username/repo/archive/master.zip --name=Procfile new_django_project .

Pastikan bahwa Procfile memiliki placeholder untuk project_name :

release: python manage.py migrate
web: gunicorn -w 3 {{ project_name }}.wsgi --log-file -

Sumber


Untuk membuat template Django yang canggih, lihat ponee , template Django yang ringan, siap digunakan dengan Heroku.

Ini bahan yang kecil tapi menarik. Kami menunggu komentar Anda dan diundang ke webinar gratis , dalam kerangka yang akan kami pelajari secara rinci cara menguji proyek pada Flask, menulis dan menjalankan tes untuk proyek di Flask, membuat data uji menggunakan Faker dan Factory Boy.

All Articles