मेरा एपीआई डेवलपर्स को इसकी कार्यक्षमता बढ़ाने की अनुमति देने के लिए बनाया जा रहा है। मेरी योजना "एक्सटेंशन" निर्देशिका प्रदान करके ऐसा करना है जहां वे ब्लूप्रिंट में ड्रॉप कर सकते हैं और वे गतिशील रूप से लोड हो जाएंगे। इस कोड को मैं आयात करने के लिए उपयोग कर रहा हूँ (इस tutorial से modifed)फ्लास्क ब्लूप्रिंट विशेषताएँ त्रुटि: 'मॉड्यूल' ऑब्जेक्ट में कोई विशेषता नहीं है 'नाम' त्रुटि
from flask import Flask
import pkgutil
import sys
app = Flask(__name__)
EXTENSIONS_DIR = "extensions"
modules = pkgutil.iter_modules(path=[EXTENSIONS_DIR])
for loader, mod_name, ispkg in modules:
if mod_name not in sys.modules:
# It imports fine
loaded_mod = __import__(EXTENSIONS_DIR+"."+mod_name+"."+mod_name, fromlist=[mod_name])
# It does not register
app.register_blueprint(loaded_mod)
यह मेरा परियोजना की निर्देशिका लेआउट है। extensions
निर्देशिका वह है जहां डेवलपर्स अपनी विस्तारित कार्यक्षमता में आते हैं।
/root
/extensions
/extension1
__init__.py
extension1.py
/extension2
__init__.py
extension2.py
simple_example.py
समस्या यह है कि मुझे यह त्रुटि मिलती है और मुझे यकीन नहीं है कि यह मुझे क्या बता रहा है।
>python simple_example.py
Traceback (most recent call last):
File "simple_example.py", line 14, in <module>
app.register_blueprint(loaded_mod)
File "C:\Python27\lib\site-packages\flask\app.py", line 62, in wrapper_func
return f(self, *args, **kwargs)
File "C:\Python27\lib\site-packages\flask\app.py", line 880, in register_blueprint
if blueprint.name in self.blueprints:
AttributeError: 'module' object has no attribute 'name'
एक सरल विस्तार इस
from flask import Blueprint
extension1 = Blueprint('extension1', __name__)
@extension1.route("/my_route")
def treasure_list():
return "list of objects"
तरह लग रहा है मैं एक तरीका है कि मेरी app.register_blueprint
कॉल सफल होने के लिए अनुमति देता है में AttributeError
कैसे हल करते हैं?
मैं एक बहुत ही इसी तरह की त्रुटि मिल रही है । –
@ डेविड क्रुक: इसका मूल रूप से मतलब है कि आप ऐसा कुछ पंजीकृत करने का प्रयास कर रहे हैं जो वास्तविक 'ब्लूप्रिंट' उदाहरण नहीं है। सुनिश्चित करें कि आप सही वस्तु में गुजरते हैं। –