Ошибка ImportError: невозможно импортировать имя «приложение» из частично инициализированного модуля «приложение» (скореPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Ошибка ImportError: невозможно импортировать имя «приложение» из частично инициализированного модуля «приложение» (скоре

Сообщение Anonymous »

Я думаю, что у меня есть циклический импорт между файлами main.py и init.py при инициализации приложения, но я не могу понять, как его правильно настроить.
Любая помощь будет оценена по достоинству. Я включил несколько изображений проекта.

Ошибка: при импорте «main» возникла ошибка ImportError:
Traceback (последний последний вызов):

Файл
"/Users/x/Sites/learning/python/flask/venv/lib/python3.9/site-packages/flask/cli .py", строка 218, в Location_app
import(имя_модуля)
Файл "/Users/x/Sites/learning/python/flask/ main.py", строка 1, из файла приложения импорта приложения "/Users/x/Sites/learning/python/flask/application/init.py", строка
4, в
из маршрутов импорта приложений
Файл «/Users/x/Sites/learning/python/flask/application/routes.py», строка 1, в
из приложение импорта приложения, db
Ошибка импорта: невозможно импортировать имя «приложение» из частично инициализированного модуля «приложение» (скорее всего, из-за
циклического импорта)
>
(/Users/x/Sites/learning/python/flask/application/init.py)

Вот несколько скриншотов проекта:
Изображение

Установленные пакеты:
Изображение
< /p>
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
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»