[英]Problem with importing a module in a Python3 script
我收到此錯誤:ImportError: cannot import name 'admin' from 'admin.blueprint' after I'm in the module blueprint.py 從 models.py 導入 Post 請幫助我了解應用程序的結構以避免這種情況未來的錯誤。
<module main.py>
from flask import Flask
from flask_sqlalchemy import SQLAlchemy
from admin.blueprint import admin
from config import Config
app = Flask(__name__)
app.config.from_object(Config)
db = SQLAlchemy(app)
app.register_blueprint(admin, url_prefix='/admin')
import views
if __name__ == '__main__'
db.create_all()
app.run(debug=True)`
<module blueprint.py>
from flask import Blueprint, redirect, render_template, request, url_for
from config import ConfigAdmin
from models import Post
admin = Blueprint('admin', __name__, template_folder='templates', static_folder='static')
@admin.route('/')
def admin_login():
return render_template('admin/admin-login.html')
@admin.route('/admin-panel', methods=['POST'])
def admin_panel():
if request.form['username'] == ConfigAdmin.ADMIN_NAME and request.form['password'] == ConfigAdmin.ADMIN_PASS:
return render_template('admin/admin-panel.html')
else:
return redirect(url_for('admin.admin_login'))
@admin.route('/create-post')
def create_post():
return render_template('admin/create-post.html')
@admin.route('/add-post', methods=['POST'])
def add_post():
if request.method == 'POST':
body = Post(post_title=request.form['title'], post_text=request.form['article'], post_img=redirect.form['file'])
db.session.add(body)
db.session.commit()
return redirect(url_for('index'))
else:
return "Err"
<module models.py>
from main import db
class Admin(db.Model):
id = db.Column(db.Integer, primary_key=True)
name = db.Column(db.String(20), unique=True)
passw = db.Column(db.String(20), unique=True)
class Post(db.Model):
id = db.Column(db.Integer, primary_key=True)
title = db.Column(db.String(50), unique=True)
text = db.Column(db.String(500), unique=True)
img = db.Column(db.String(50))
[錯誤][1] [結構][2] [1]: https://i.stack.imgur.com/cgrbH.png [2]: https://i.stack.imgur.com/fDr7O.png
您是否嘗試過創建以下應用程序? Flask 教程應用程序 - Flaskr 博客如果您剛開始,我強烈建議您遵循此結構。
如下所示:
/home/user/Projects/flask-tutorial
├── flaskr/
│ ├── __init__.py
│ ├── db.py
│ ├── schema.sql
│ ├── auth.py
│ ├── blog.py
│ ├── templates/
│ │ ├── base.html
│ │ ├── auth/
│ │ │ ├── login.html
│ │ │ └── register.html
│ │ └── blog/
│ │ ├── create.html
│ │ ├── index.html
│ │ └── update.html
│ └── static/
│ └── style.css
├── tests/
│ ├── conftest.py
│ ├── data.sql
│ ├── test_factory.py
│ ├── test_db.py
│ ├── test_auth.py
│ └── test_blog.py
├── venv/
├── setup.py
└── MANIFEST.in
如果您希望在當前應用程序中使用 function,我建議您在與admin.py
相同的文件夾中創建一個main.py
from flask import Blueprint, redirect, render_template, request, url_for
from config import ConfigAdmin
from models import Post
bp = Blueprint('admin', __name__, template_folder='templates', static_folder='static')
然后將其導入main.py
如下
from admin import bp as adminbp
app.register_blueprint(adminbp, url_prefix='/admin')
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.