Es ist sehr schwierig, dieses grundlegende Problem zu umgehen. Ich benutze Python 2.7.10, um einem Flaschentutorial zu folgen, das mit Python 3.4 geliefert wird. Ich bin mir einiger Unterschiede zwischen den beiden Versionen bewusst, aber es scheint, dass das Wissen nicht ausreicht, um diese Situation zu überwinden. Ich habe Amateur-Level-Erfahrung in Python. Ich habe das Gefühl, dass es etwas mit der Klassendefinition zu tun hat, aber nicht dazu in der Lage ist. Und ja, ich habe die Lösungen für ähnliche Fehler durchgespielt, konnte aber die Lösung nicht auf mein Problem beziehen.Fehler beim Aufrufen der Metaklassenbasen
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)
Meine Verzeichnisstruktur:
├── __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:
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)
wählte ich nicht mit wtforms zu markieren, wie ich mit mehr besorgt bin, was ich bin fehlt, wenn es um metaclasses zwischen 2,7 und 3,4 kommt.
Vielen Dank. Hatte auch "Methode" anstelle von "Methoden" in views.py. Alles bereit! – papu