この基本的な問題を回避することは非常に困難です。私はpython 3.4を使って配送されるフラスコチュートリアルに従うためにpython 2.7.10を使用しています。私は2つのバージョンのいくつかの違いを認識していますが、知識がこの状況を克服するのに十分ではないようです。私はPythonでアマチュアレベルの経験を持っています。そのクラスの定義と関係があるが、それを釘付けすることができないと感じている。そして、はい、私は同様のエラーのためのソリューションを通過したが、私の問題に解決策を関連付けることができませんでした。メタクラスベースを呼び出すときのエラー
Traceback (most recent call last):
File "manage.py", line 5, in <module>
from flask_init import app
File "/Users/sapp/Desktop/ude/flask_init/__init__.py", line 12, in <module>
from author import views
File "/Users/sapp/Desktop/ude/flask_init/author/views.py", line 3, in <module>
from form import RegisterForm
File "/Users/sapp/Desktop/ude/flask_init/author/form.py", line 5, in <module>
class RegisterForm(form):
TypeError: Error when calling the metaclass bases
module.__init__() takes at most 2 arguments (3 given)
私のディレクトリ構造:
├── __init__.py
├── __init__.pyc
├── author
│ ├── __init__.py
│ ├── __init__.pyc
│ ├── form.py
│ ├── form.pyc
│ ├── models.py
│ ├── models.pyc
│ ├── views.py
│ └── views.pyc
├── blog
│ ├── __init__.py
│ ├── __init__.pyc
│ ├── views.py
│ └── views.pyc
├── manage.py
├── requirements.txt
├── settings.py
├── settings.pyc
├── templates
│ ├── author
│ └── base.html
└── venv
├── bin
├── include
├── lib
└── pip-selfcheck.json
manage.py:
import os, sys
from flask_script import Manager, Server
from flask_init import app
manager = Manager(app)
manager.add_command("runserver", Server(
do something
))
if __name__ == "__main__":
manager.run()
form.py:
from flask_wtf import form
from wtforms import validators, StringField, PasswordField
from wtforms.fields.html5 import EmailField
class RegisterForm(form):
pass
init.py:
from flask import Flask
from flask.ext.sqlalchemy import SQLAlchemy
app = Flask(__name__)
app.config.from_object('settings')
db = SQLAlchemy(app)
import blog.views
from author import views
views.py:私は私はそれが2.7と3.4の間メタクラスに来るとき私は欠けているものとのより多くの心配としてwtformsでタグ付けしないことを選択した
from flask_init import app
from flask import render_template, redirect
from form import RegisterForm
@app.route('/register', method=('GET', 'POST'))
def register():
form = RegisterForm()
return render_template('author/register.html', form=form)
。
ありがとうございます。また、views.pyに 'methods'の代わりに 'method'がありました。準備完了! – papu