Trong chính thức Quickstart, nó khuyến khích sử dụng __name__
khi sử dụng một module đơn:Flask ('ứng dụng') so với Flask (__ name__)
- ... Nếu bạn đang sử dụng một mô-đun đơn (như trong ví dụ này), bạn nên sử dụng
__name__
vì tùy thuộc vào việc nó được bắt đầu là ứng dụng hay được nhập dưới dạng mô-đun, tên khác nhau ('__main__'
so với tên nhập thực tế). ...
Tuy nhiên, trong API document của họ, hardcoding được khuyến khích khi ứng dụng của tôi là một gói:
Vì vậy, điều quan trọng là những gì bạn cung cấp ở đó. Nếu bạn đang sử dụng một mô-đun ,
__name__
luôn là giá trị chính xác. Tuy nhiên, nếu bạn đang sử dụng gói , bạn nên mã hóa tên của gói ở đó.
Tôi có thể hiểu tại sao tốt hơn nên mã hóa tên gói của tôi, nhưng tại sao không mã hóa tên của một mô-đun đơn lẻ? Hay nói cách khác, thông tin nào có thể Flask
nhận được khi nó nhận được thông số đầu tiên là __main__
? Tôi không thể thấy điều này có thể giúp Flask dễ dàng tìm tài nguyên như thế nào ...
Bạn có thể giải thích thêm một chút về "địa điểm" chính xác "không? AFAIK, '__name__' trong gói' __init __. Py' sẽ là tên của gói đó. Vì vậy, nơi nào được coi là "chính xác"? –
Thông thường tên gói cơ sở là chính xác. Bạn đã thử điều đó và có một vấn đề cụ thể? – davidism
Chưa. Tôi chỉ đang làm thí nghiệm và cố gắng hiểu bất cứ điều gì trước khi tôi bắt đầu ... –