Tôi có cấu trúc sau cho thư mục views
của mình.Django/Python: Nhập một lần, sử dụng ở mọi nơi
views
|--__init__.py
|--a_management.py
|--b_management.py
|--c_management.py
|--d_management.py
|--e_management.py
và __init__.py
bắt đầu với những điều sau đây:
from a_management import *
from b_management import *
from c_management import *
from d_management import *
from e_management import *
.........
...etc...
.........
Trong mỗi file (a_management.py
, b_management.py
...) Tôi cần phải viết mã tương tự nhập khẩu các module:
import sys,os
from django.shortcuts import render, redirect
from django.http import HttpResponseRedirect
.........
...etc...
.........
Có thể thực hiện tất cả các mô-đun nhập chỉ trong __init__.py
?
Khi tôi cố gắng, nó vẫn có vẻ như hàng nhập khẩu không được tìm thấy và tôi nhận được lỗi như: NameError: global name 'sys' is not defined
Tôi rất bối rối bởi sự lựa chọn cấu trúc của bạn. Tại sao bạn nhập tất cả của bạn trong '__init __. Py', bạn đang sử dụng chúng ở đâu khác? – IanAuld
@IanAuld Tôi đang theo dõi [SO trả lời] này (http://stackoverflow.com/a/1921911) để chia nhỏ 'views.py' – Jedi
Tách các chức năng/phương thức chia tách là tốt. Tuy nhiên, việc nhập chế độ xem để sử dụng ở nơi khác thì hơi khác thường trừ khi địa điểm đó là 'urls.py' của bạn. Thêm tất cả các khung nhìn của bạn vào init chỉ làm cho nó để bạn sử dụng 'từ các khung nhìn import SomeView' thay vì' từ view.a_management import SomeView'. Bạn không cần phải thêm bất cứ thứ gì vào '__init __. Py' để tạo một gói. – IanAuld