<prompt> Andika programu ya Python inayotumia mfumo wa wavuti wa Flask kuunda programu rahisi ya wavuti na uthibitishaji wa mtumiaji. Watumiaji wanapaswa kuwa na uwezo wa kujiandikisha, kuingia, na kutazama maelezo yao ya wasifu. Tumia hifadhidata ya SQLite kuhifadhi data ya mtumiaji. PLINFORMAT  <response>: kutoka kwa chupa ya kuingiza Chupa, render_template, elekeza kwingine, url_for, flash, ombikutoka kwa flask_sqlalchemy kuagiza SQLAlchemykutoka kwa flask_login import LoginManager, UserMixin, login_user, login_required, logout_user, current_userprogramu Chupa__jina__app.configSECRET_KEY secret_keyapp.configSQLALCHEMY_DATABASE_URI sqlite:users.dbdb SQLAlchemyprogramulogin_manager LoginManagerlogin_manager.init_appprogramulogin_manager.login_view ingiaMtumiaji wa darasa UserMixin, db.Model: id db.Safuwimadb.Integer,msingi_ufunguoKweli jina la mtumiaji db.Safuwimadb.String80, uniqueKweli, isiyobatilikaUongo nenosiri db.Safuwimadb.String120, inayoweza load_useruser_id: return nyumbani : return mbinuGET, POSTdef rejista : if request.method POST: jina la mtumiaji request.formusername password request.formpassword mtumiaji Mtumiajijina la mtumiajijina la mtumiaji, nenosirinenosiri db.session.ongezamtumiaji db.session.commit flashUsajili umefaulu! rudisha kuelekeza url_foringia return mbinuGET, POSTdef login: if request.method POST: jina la mtumiaji request.formusername password request.formpassword mtumiaji Mtumiaji.query.filter_byjina la mtumiajijina la mtumiaji.kwanza ikiwa mtumiaji na mtumiaji.password nenosiri: kuingia_mtumiaji mtumiaji rudisha kuelekeza url_forprofile kwingine: flashKuingia hakukufaulu. Tafadhali angalia stakabadhi zako. return profile: return render_templateprofile.html, logout: mtumiaji_toka rudisha uelekeo upyaurl_fornyumbanikama __name__ __main__: app.rundebugKweli 