首页 > 解决方案 > 由于某种原因没有模块名称烧瓶

问题描述

我正在构建我的第一个后端网站,但是现在当我尝试从 shell 启动数据库时,我得到了这个:

没有名为 flask 的模块

文件结构:

这些都在一个名为

5_judges.py  __pycache__  backend.py  dives.py           static     textcase.py
__init__.py  backend.py   dive.js      documentation.txt  templates

这是代码:

from flask import Flask, render_template
from flask_sqlalchemy import SQLAlchemy
from datetime import datetime
app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI']= 'sqlite:///posts.db'
db = SQLAlchemy(app)

标签: pythonflaskbackend

解决方案


在构建烧瓶项目时,您可以使用关注点分离原则。遵循这一原则,您的所有文件/模块/包都组织良好并且可以重复使用。

创建烧瓶应用程序时使用此结构:

project_folder
    |---------- app.py
    |---------- config.py
    |---------- .env
    |---------- requirements.txt
    |---------- .flaskenv
    |---------- app/
                  |------ routes.py
                  |------ models.py
                  |------ __init__.py
                  |------ forms.py
                  |------ templates/
                              |-------- home.html
                              |-------- base.html
                  |------ static/
                            |-------css/
                                     |------- styles.css
                            |-------js/
                                     |------- app.js

您的所有配置都转到该config.py文件。

你注册你安装的包,比如烧瓶,SQLAlchemy__init__.py

已安装的软件包被写入requirements.txt文件。

在您的情况下,您需要安装flask

(venv)$ pip3 install flask

更新您的requirements.txt文件:

(venv)$ pip3 freeze > requirements.txt

在以下位置初始化您的烧瓶应用程序_init_.py

from flask import Flask
from flask_sqlalchemy import SQLAlchemy

app = Flask(__name__)
db = SQLAlchemy(app)

import routes, models

您所有的路线都将在routes.py

from app import app
from flask import render_template

@app.route('/')
def home():
    return render_template('home.html')

更新数据库的逻辑将在您的路线中。


推荐阅读