ImportError: cannot import name 'create_db' from 'flsite'

Помогите плиз исправить ошибку. При импорте возникает такая ошибка. Создаю базу данных в консоли вызвал Python и пытаюсь импортировать

from  flsite import create_db

Вот мой код:

import sqlite3
import os
from flask import Flask, render_template, url_for, request, flash, session, redirect, abort

DATABASE = '/tmp/flsite.db'
DEBUG = True
app.secret_key = 'shvishdhhs5453bkkbhk53'

app = Flask (__name__)
app.config.from_object(__name__)

app.config.update(dict(DATABASE=os.path.join(app.root_path,'flsite.db')))



def connect_db():
    conn = sqlite3.connect(app.config['DATABASE'])
    conn.row_factory = sqlite3.Row
    return conn


def create_db():
    db = connect_db()
    with app.open_resource('sq_db.sql',mode='r') as f:
        db.cursor().executescript(f.read())
        db.commit()
        db.close()


menu = [{"name": "Установка", "url": "install-flask"},
        {"name": "Первое приложение", "url": "first-app"},
        {"name": "Обратная связь", "url": "contact"}]


@app.route("/")
def index():
    print( url_for('index') )
    return render_template('index.html', menu=menu)


@app.route("/about")
def about():
    print( url_for('about') )
    return render_template('about.html', title="О сайте", menu=menu)


@app.route("/contact", methods=["POST", "GET"])
def contact():
        if request.method == 'POST':
            if len(request.form['username']) > 2:
                flash('Сообщение отправленно', category='success')
            else:
                flash('Ошибка отправки', category='error')

        return render_template('contact.html', title="Обратная связь", menu=menu)


@app.route("/profile/<username>")
def profile(username):
    if 'userLogged' not in session or session['userLogged'] != username:
        abort(401)

    return f"Профиль пользователя: {username}"


@app.route("/login", methods=["POST", "GET"])
def login():
    if 'userLogged' in session:
        return redirect(url_for('profile', username=session['userLogged']))
    elif request.method == 'POST' and request.form["username"] == "self" and request.form["psw"] == "123":
        session['userLogged'] = request.form['username']
        return redirect(url_for('profile', username=session['userLogged']))

    return render_template('login.html', title="Авторизация", menu=menu)



@app.errorhandler(404)
def pageNotFount(error):
    return render_template('page404.html', title="Страница не найдена", menu=menu)


if __name__ == "__main__":
    app.run(debug=True)
    

А вот сама ошибка:

from  flsite import create_db
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ImportError: cannot import name 'create_db' from 'flsite' (C:\Users\Пользователь\Desktop\SMblogy\flsite.py)

Ответы (1 шт):

Автор решения: DGDays

Смотри, ответ довольно прост. Тебе надо использовать файл __init__.py, что бы питон определял папку как модуль. Если твой модуль размещён в папке, то импорт будет выглядеть так:

import папка.файл.функция

Если же тебе надо чтобы просто по названию модуля(flsite) можно было импортировать всё, то тебе надо создать в папке flsite файлы __init__.py и main.py И импорт будет выглядеть так:

import flsite.функция

→ Ссылка