Seite 1 von 1

import Fehler

Verfasst: Samstag 4. Mai 2024, 05:56
von baum352
ich habe folgende python file

Code: Alles auswählen

from flask import Flask
from flask_sqlalchemy import SQLAlchemy
from flask_cors import CORS

app = Flask(__name__)
CORS(app)

app.config["SQLALCHEMY_DATABASE_URI"] = "sqlite:///mydatabase.db"
app.config["SQLALCHEMY_TRACK_MODIFICATIONS"] = False

db = SQLAlchemy(app)
jetzt versuche ich das in main.py zu importen

Code: Alles auswählen

from flask import request, jsonify
from config import app,db
from models import Contact



@app.route("/contacts", methods =["GET"])
def get_contacts():
    contacts = Contact.query.all()
    json_contacts = list(map(lambda x: x.to_json(), contacts))
    return jsonify({"contacts": json_contacts})

if __name__ == "__main__":
    with app.app_context():
        db.create_all()

    app.run(debug = True)
und ich bekomme folgenden Fehler

Traceback (most recent call last):
File "c:\Users\Nicov\Uni\FlaskDemo\backend\main.py", line 2, in <module>
from config import app,db
ImportError: cannot import name 'app' from 'config' (c:\Users\Nicov\Uni\FlaskDemo\backend\config.py)

ich habe keine Ahnung was ich da tun soll, die genannten files befinden sich alle im gleichen Ordner

Re: import Fehler

Verfasst: Sonntag 5. Mai 2024, 11:03
von __blackjack__
Das Problem kann ich bei mir nicht nachvollziehen. Hast Du eventuell die ``config.py`` nicht gespeichert oder editierst eine andere ``config.py`` so dass da tatsächlich `app` nicht definiert wird?

`x` ist übrigens kein so guter Name für ein `Contact`-Objekt, und man muss nicht jedes kleine Zwischenergebnis an einen Namen binden.

`list()` + `map()` + ``lambda`` schreibt sich normalerweise besser als „list comprehension“.

Code: Alles auswählen

@app.get("/contacts")
def get_contacts():
    return jsonify(
        {"contacts": [contact.to_json() for contact in Contact.query.all()]}
    )