2012-07-29 12 views
5

यह स्टैक ओवरव्लो पर मेरी पहली पोस्ट है इसलिए सभी को नमस्कार।फ्लास्क-डब्ल्यूटीएफम्स मेरी प्रोजेक्ट निर्देशिका में डब्ल्यूटीएफम्स नहीं ढूंढ सकते

मैं पाइथन और फ्लास्क सीखने के लिए ब्लॉग एप्लिकेशन कर रहा हूं और मैं इसे Google App Engine पर लॉन्च करना चाहता हूं। दुर्भाग्यवश मुझे आवेदन में डब्ल्यूटीएफ आयात करने के साथ छोटी समस्या है। मैं वर्तमान में फ्लास्क 0.9, डब्ल्यूटीएफम्स 1.0.1 और फ्लास्क-डब्ल्यूटीएफम्स 0.8 का उपयोग कर रहा हूं। मैंने flaskext_wtf फ़ोल्डर को मेरे प्रोजेक्ट के रूट रूट में जोड़ा है लेकिन मुझे html5.py फ़ाइल से त्रुटि मिल रही है।

File "/Users/lucas/Workspace/blog/flask_wtf/html5.py", line 1, in <module> 
from wtforms import TextField 
File "/Users/lucas/Workspace/blog/flask/exthook.py", line 86, in load_module 
raise ImportError('No module named %s' % fullname) 
ImportError: No module named flask.ext.wtf.wtforms 

ऐसा लगता है कि यह मेरे प्रोजेक्ट पथ के बजाय एक्सटेंशन पथ के अंदर wtforms को खोजने का प्रयास करता है। रूट में wtforms को देखने के लिए मैं html5.py फ़ाइल को कैसे सूचित कर सकता हूं? https://bitbucket.org/lucas_mendelowski/wblog/src

+0

हाय लुकास, आपको वास्तव में वर्चुअलएन्व को अपने पायथन परियोजनाओं का उपयोग करना चाहिए। एक अच्छी फ्लास्क परियोजना संरचना पर एक पूर्ण मार्गदर्शिका के लिए यह निःशुल्क ऑनलाइन पुस्तक देखें: [http://exploreflask.com] (http://exploreflask.com) – nighthawk454

उत्तर

0

आपने गलत आयात है -

यहाँ मेरी परियोजना के स्रोत हैं। आप शायद कर रहे हैं:

from flask.ext.wtf import wtforms 

ऐसा कोई मॉड्यूल नहीं है। इसके बजाय आपको क्या करना चाहिए:

from flask.ext.wtf import Form, TextField 

आप एचटीएमएल 5 विजेट चाहते हैं, बस निम्नलिखित का उपयोग करें। उदाहरण के लिए, आप

from flask.ext.wtf.html5 import URLField 
+0

आपकी प्रतिक्रिया के लिए धन्यवाद लेकिन प्रश्न पर उत्तर देने से पहले कृपया कोड जांचें । मेरे आवेदन फ़ाइल में मुझे मिला है: flask.ext.wtf आयात फ़ॉर्म से (जो सही है, मुझे लगता है)। लेकिन Flask-WTForms में html5.py फ़ाइल में है: wtforms आयात टेक्स्टफिल्ड से जो मैप किया गया है: flask.ext.wtf.wtforms। – Lucas

+0

मुझे लगता है कि आपको केवल फ्लास्क-डब्ल्यूटीएफ का उपयोग करना चाहिए और WTForms स्टैंडअलोन नहीं करना चाहिए। – codegeek

1

मुझे लगता है कि के रूप में URLField आयात कर सकते हैं, मैं अंत में इस मुद्दे के साथ प्रबंधन (लेकिन मुझे यकीन है कि अगर यह सही तरीका है नहीं कर रहा हूँ)। इन फ़ाइलों में

आयात बदलें:

1) flaskwtf/init_.py

से:

from flask.ext.wtf import html5 
from flask.ext.wtf.form import Form 
from flask.ext.wtf import recaptcha 

from flask.ext.wtf.recaptcha.fields import RecaptchaField 
from flask.ext.wtf.recaptcha.widgets import RecaptchaWidget 
from flask.ext.wtf.recaptcha.validators import Recaptcha 

करने के लिए:

import html5 
from form import Form 
import recaptcha 

from recaptcha.fields import RecaptchaField 
from recaptcha.widgets import RecaptchaWidget 
from recaptcha.validators import Recaptcha 

2) flaskwtf/recaptcha/init_ .py:

से:

from flask.ext.wtf.recaptcha import fields 
from flask.ext.wtf.recaptcha import validators 
from flask.ext.wtf.recaptcha import widgets 

के लिए: - https://github.com/rduplain/flask-wtf/issues/46#issuecomment-7376577

0

आपका आयात गलत है

import fields 
import validators 
import widgets 

मैं भी GitHub पर एक समाधान पोस्ट किया है। साथ ही, सुनिश्चित करें कि आप फ्लास्क-डब्ल्यूटीएफ स्थापित करें जो स्वचालित रूप से WTForm इंस्टॉल करता है।

जहां तक ​​खेतों आयात करने चला जाता है, डॉक्स के अनुसार ..

From version 0.9.0, Flask-WTF will not import anything from wtforms 
you need to import fields from wtforms. 


    from flask_wtf import Form 
    from wtforms import TextField 
    from wtforms.validators import DataRequired 

    class MyForm(Form): 
     name = TextField('name', validators=[DataRequired()]) 

Flask-WTF quick start guide की समीक्षा करें।

2

मुझे लगता है कि आपके वर्चुअलएव में फ्लास्क-डब्ल्यूटीएफ मॉड्यूल नहीं है। virtualenv

pip install Flask-WTF 

के तहत अपने आदेश पंक्ति में निम्न आदेश लिखें या आप यह कर सकते हैं, लेकिन यह अनुशंसित नहीं है।

easy_install Flask-WTF 
संबंधित मुद्दे