93331


DBの初期化部分でエラーとなってしまっているのですが、なぜエラーとなってしまうのか分かりません。

何回も、見直し、書き直しをしても解決できない状況です。  
どなかた原因・解決方法をご教示ください。

[code]

    def __init__(self, title, body, date):
    
[/code]

app.py実行時のエラーメッセージ

[code]

      File "C:\work\dev\FLASK\CURD\app.py", line 32
        def __init__(self, title, body, date):
                                              ^
    IndentationError: unindent does not match any outer indentation level
    
[/code]

[code]

    from flask import Flask, render_template
    from flask_sqlalchemy import SQLAlchemy
    from datetime import datetime
    from pytz import timezone
    
    app = Flask(__name__)
    
    app.config['SECRET_KEY'] = 'mysecretkey'
    URI = 'sqlite:///note.db'
    app.config['SQLALCHEMY_DATABASE_URI'] = URI
    app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False
    db = SQLAlchemy(app)
    
    
    from sqlalchemy.engine import Engine
    from sqlalchemy import event
    
    @event.listens_for(Engine, "connect")
    def set_sqlite_pragma(dbapi_connection, connection_record):
        cursor = dbapi_connection.cursor()
        cursor.execute("PRAGMA foreign_keys=ON")
        cursor.close()
    
    
    class Note(db.Model):
         __tablename__='notes'
         id = db.Column(db.Integer, primary_key=True)
         title = db.Column(db.String(140))
         body = db.Column(db.String(300))
         date = db.Column(db.DateTime, default=datetime.now(timezone('Asia/Tokyo')))
    
        def __init__(self, title, body, date): # ここでエラーとなります
            self.title = title
            self.body = body
            self.date = date
    
    @app.route('/')
    def index():
        title = '一覧画面'
        return render_template('index.html', title=title)
    
    if __name__ == '__main__':
        app.run(debug=True)
    
[/code]


CC BY-SA 4.0
2023-01-14T05:56:58.083
93330
2023-01-14T06:24:58.833
2023-01-14T06:24:58.833
3060
question
python
Python でエラー: IndentationError: unindent does not match any outer indentation level


`class Note(db.Model):`の行と`def __init__(self, title, body,
date):`の行の間のインデントが空白1桁だけ多いからでしょう。  
その部分のインデントの空白を1桁削れば動作すると思われます。

[code]

    class Note(db.Model):
         __tablename__='notes' #### ここから↓
         id = db.Column(db.Integer, primary_key=True)
         title = db.Column(db.String(140))
         body = db.Column(db.String(300))
         date = db.Column(db.DateTime, default=datetime.now(timezone('Asia/Tokyo'))) #### ここまで↑
    
        def __init__(self, title, body, date): # ここでエラーとります
            self.title = title
            self.body = body
            self.date = date
    
[/code]


CC BY-SA 4.0
2023-01-14T06:20:02.497
93331
2023-01-14T06:20:02.497
26370
93330
answer