Dalam Django semuanya adalah modul Python (* .py). Anda dapat membuat folder tampilan dengan bagian __init__.py
dalam dan Anda masih dapat mengimpor tampilan Anda, karena ini juga mengimplementasikan modul Python. Tetapi sebuah contoh akan lebih baik.
Dokumen asli Anda views.py
mungkin terlihat seperti ini:
def view1(arg):
pass
def view2(arg):
pass
Dengan struktur folder / file berikut ini akan berfungsi sama:
views/
__init__.py
viewsa.py
viewsb.py
viewsa.py
:
def view1(arg):
pass
viewsb.py
:
def view2(arg):
pass
__init__.py
:
from viewsa import view1
from viewsb import view2
The cepat penjelasan akan: ketika Anda menulis from views import view1
Python akan mencari view1 di
views.py
, itulah yang terjadi pada kasus pertama (asli)
views/__init__.py
, Itulah yang terjadi pada kasus kedua. Di sini, __init__.py
dapat menyediakan metode view1 karena mengimpornya.
Dengan solusi semacam ini, Anda mungkin tidak perlu mengubah import
atau urlpattern
argumenurls.py
Jika Anda memiliki banyak metode di setiap file tampilan baru, Anda mungkin merasa berguna untuk membuat impor views/__init__.py
digunakan *
, seperti ini:
from viewsa import *
from viewsb import *
Saya sebenarnya tidak tahu tentang masalah kecepatan (tapi saya ragu ada).
Untuk Model mungkin agak sulit.