Я думаю, что у меня есть циклический импорт между файлами main.py и init.py при инициализации приложения, но я не могу понять, как его правильно настроить.
Любая помощь будет оценена по достоинству. Я включил несколько фотографий о проекте.
Error: While importing 'main', an ImportError was raised:
Traceback (most recent call last): File "/Users/x/Sites/learning/python/flask/venv/lib/python3.9/site-packages/flask/cli.py",line 218, in locate_app
__import__(module_name)
File "/Users/x/Sites/learning/python/flask/main.py", line 1, in from application import app File "/Users/x/Sites/learning/python/flask/application/__init__.py", line 4, in
from application import routes
File "/Users/x/Sites/learning/python/flask/application/routes.py", line 1, in
from application import app, db
ImportError: cannot import name 'app' from partially initialized module 'application' **(most likely due to a circular import)** (/Users/x/Sites/learning/python/flask/application/__init__.py)
Вот несколько скриншотов проекта:
[img]https://i.sstatic.net /511liv4H.png[/img]
Установленные пакеты:
[img]https://i.sstatic .net/8lRij3TK.png[/img]
main.py
from application import app
init.py
from flask import Flask
from config import Config
from flask_mongoengine import MongoEngine
from application import routes
db = MongoEngine()
app = Flask(__name__)
app.config.from_object(Config)
db.init_app(app)
Routes.py
from application import app, db
from flask import render_template, request, Response, json
courseData = [
{"courseID": "1111", "title": "PHP 111", "description": "Intro to PHP", "credits": "3", "term": "Fall, Spring"},
{"courseID": "2222", "title": "Java 1", "description": "Intro to Java Programming", "credits": "4","term": "Spring"},
{"courseID": "3333", "title": "Adv PHP 201", "description": "Advanced PHP Programming", "credits": "3", "term": "Fall"},
{"courseID": "4444", "title": "Angular 1", "description": "Intro to Angular", "credits": "3","term": "Fall, Spring"},
{"courseID": "5555", "title": "Java 2", "description": "Advanced Java Programming", "credits": "4","term": "Fall"}]
@app.route("/")
@app.route("/index")
def index():
return render_template("index.html", index=True)
@app.route("/login")
def login():
return render_template("login.html", login=True)
@app.route("/enrollment", methods=["GET","POST"])
def enrollment():
id = request.form.get('courseID')
title = request.form['title']
term = request.form.get('term')
return render_template("enrollment.html", enrollment=True, data={"id":id,"title":title,"term":term})
@app.route("/courses")
@app.route("/courses/")
def courses(term="2024"):
return render_template("courses.html", courseData=courseData, courses=True, term=term)
@app.route("/register")
def register():
return render_template("register.html", register=True)
@app.route("/api/")
@app.route("/api/")
def api(idx=None):
if idx is None:
jdata = courseData
else:
jdata = courseData[int(idx)]
return Response(json.dumps(jdata), mimetype="application/json")
class User(db.Document):
user_id = db.IntField(unique=True)
first_name = db.StringField(max_length=50)
last_name = db.StringField(max_length=50)
email = db.StringField(max_length=30)
password = db.StringField(max_length=30)
@app.route("/user")
def user():
User(user_id=1, first_name="x", last_name="x", email="[email protected]", password="pass").save()
User(user_id=2, first_name="Sam", last_name="x", email="[email protected]", password="pass").save()
users = User.objects.all()
return render_template("user.html", users=users)
Подробнее здесь: https://stackoverflow.com/questions/791 ... le-applica
Ошибка ImportError: невозможно импортировать имя «приложение» из частично инициализированного модуля «приложение» (скоре ⇐ Python
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение