Sirius3 hat geschrieben: ↑Donnerstag 19. September 2019, 09:11
"Wenn Du Fehlermeldungen hier postest, dann bitte mit komplettem Traceback, sonst muß man raten, wo der Fehler wahrscheinlich auftritt. Auch wäre es praktisch, alle Importe mit anzugeben und nicht nur einen Kommentar."
------>
ok alles klar.
Traceback (most recent call last):
File "C:\Users\..\Desktop\flask_app\env\lib\site-packages\flask\app.py", line 2463, in __call__
return self.wsgi_app(environ, start_response)
File "C:\Users\..\Desktop\flask_app\env\lib\site-packages\flask\app.py", line 2449, in wsgi_app
response = self.handle_exception(e)
File "C:\Users\..\Desktop\flask_app\env\lib\site-packages\flask_restful\__init__.py", line 269, in error_router
return original_handler(e)
File "C:\Users\..\Desktop\flask_app\env\lib\site-packages\flask\app.py", line 1866, in handle_exception
reraise(exc_type, exc_value, tb)
File "C:\Users\..\Desktop\flask_app\env\lib\site-packages\flask\_compat.py", line 39, in reraise
raise value
File "C:\Users\..\Desktop\flask_app\env\lib\site-packages\flask\app.py", line 2446, in wsgi_app
response = self.full_dispatch_request()
File "C:\Users\..\Desktop\flask_app\env\lib\site-packages\flask\app.py", line 1951, in full_dispatch_request
rv = self.handle_user_exception(e)
File "C:\Users\..\Desktop\flask_app\env\lib\site-packages\flask_restful\__init__.py", line 269, in error_router
return original_handler(e)
File "C:\Users\..\Desktop\flask_app\env\lib\site-packages\flask\app.py", line 1820, in handle_user_exception
reraise(exc_type, exc_value, tb)
File "C:\Users\..\Desktop\flask_app\env\lib\site-packages\flask\_compat.py", line 39, in reraise
raise value
File "C:\Users\..\Desktop\flask_app\env\lib\site-packages\flask\app.py", line 1949, in full_dispatch_request
rv = self.dispatch_request()
File "C:\Users\..\Desktop\flask_app\env\lib\site-packages\flask\app.py", line 1935, in dispatch_request
return self.view_functions[rule.endpoint](**req.view_args)
File "C:\Users\..\Desktop\flask_app\webapp\routes.py", line 264, in get_all_user
user = db.engine('user', autoload=True, autoload_with=engine, engine_options=None)
TypeError: 'Engine' object is not callable
import in routes.py
Code: Alles auswählen
import io, json, os, secrets, requests
from flask import (abort, flash, jsonify, make_response, redirect,
render_template, request, send_file, url_for)
from PIL import Image
from sqlalchemy.exc import IntegrityError
from werkzeug.security import check_password_hash, generate_password_hash
from werkzeug.utils import secure_filename
from flask_httpauth import HTTPBasicAuth
from flask_login import current_user, login_required, login_user, logout_user
from flask_restful import Api, Resource, abort, reqparse
from pygal.style import DefaultStyle as DS
from pygal.style import LightenStyle as LS
from webapp import app, bcrypt, db
from flask_sqlalchemy import SQLAlchemy
from webapp.forms import (LoginForm, PostForm, RegistrationForm,
UpdateAccountForm)
from webapp.models import Post, User
from sqlalchemy import *
import in init.py
Code: Alles auswählen
import os
from flask import Flask
from flask_babelex import Babel
from flask_bcrypt import Bcrypt
from flask_login import LoginManager
from flask_mail import Mail, Message
from flask_restful import Api, Resource, abort, reqparse
from flask_sqlalchemy import SQLAlchemy
from lepl.apps.rfc3696 import Email
from werkzeug.utils import secure_filename
import in models.py
Code: Alles auswählen
from datetime import datetime
from webapp import db, login_manager
from flask_login import UserMixin
#import sqlalchemy as db
import flask_sqlalchemy
from flask_sqlalchemy import SQLAlchemy
"Warum glaubst Du denn, das Du db.engine benutzen mußt und was soll diese Zeile machen? Woher hast Du das?"
------>
to execute raw SQL in Flask-SQLAlchemy app laut Documentation
"Die Funktion `get_all_user` ist wegen der vielen Leerzeilen extrem schlecht lesbar. Alles was nach `return` kommt, wird nie ausgeführt."
------>
verstehe nicht was du mit "vielen Leerzeilen" meinst! coonect.close ist wie session.commit() und muss nach return ausgeführt
"Das `password`-Feld in `User` ist mit 60 Zeichen etwas kurz. Mit Salt und 128Bit Hash belegen, hex-kodiert schon 64 Zeichen und eigentlich will man heutzutage 256bit verwenden, dazu noch Method, Iterationen, etc., da ist man leicht bei 150 Zeichen. Naja, mit base64-Kodierung sind es ein paar weniger."
------>
danke , ich ändere es