<prompt> Unda programu ya Python Flask ambayo inaruhusu watumiaji kujiandikisha na kuingia kwa kutumia anwani zao za barua pepe na nywila. Hifadhi maelezo ya mtumiaji katika hifadhidata ya PostgreSQL na utekeleze hashing ya nenosiri kwa usalama. Jumuisha kushughulikia makosa kwa kesi kama vile barua pepe isiyo sahihi au ingizo la nenosiri.  <response>: Ili kuunda programu ya Python Flask na usajili wa mtumiaji na utendaji wa kuingia, utahitaji kufuata hatua hizi:1. Weka vifurushi vinavyohitajika2. Sanidi hifadhidata yako ya PostgreSQL3. Unda programu yako ya Flask4. Tekeleza njia za usajili na kuingia5. Tekeleza neno la siri hashing6. Ongeza ushughulikiaji wa makosaHapa kuna mfano wa utekelezaji wa mchakato huu:Hatua ya 1: Sakinisha vifurushi vinavyohitajikaKwanza, sasisha vifurushi muhimu kwa kutumia bomba:bashipip install flask flask_sqlalchemy psycopg2-binary flask_bcryptHatua ya 2: Sanidi hifadhidata yako ya PostgreSQLUnda hifadhidata mpya ya PostgreSQL na mtumiaji aliye na haki zinazofaa.Hatua ya 3: Unda programu yako ya FlaskUnda faili mpya inayoitwa app.py na uongeze msimbo ufuatao ili kusanidi programu yako ya Flask na kusanidi muunganisho wa hifadhidata: chatukutoka kwa chupa ya kuingiza chupa, render_template, url_for, flash, elekeza kwinginekutoka kwa flask_sqlalchemy kuagiza SQLAlchemykutoka kwa flask_bcrypt kuleta Bcryptprogramu Chupa__jina__app.configSECRET_KEY your_secret_keyapp.configSQLALCHEMY_DATABASE_URI postgresql:username:passwordlocalhostdb_namedb SQLAlchemyprogramubcrypt Fiche programukama __name__ __main__: app.rundebugKweliBadilisha ufunguo_wa_siri_wako, jina la mtumiaji, nenosiri, na db_name na thamani zako mwenyewe.Hatua ya 4: Tekeleza njia za usajili na kuingiaOngeza nambari ifuatayo kwa app.py ili kutekeleza usajili na njia za kuingia: mbinuGET, POSTdef rejista : if request.method POST: barua pepe request.formemail nenosiri bcrypt.generate_password_hashrequest.formpassword.decodeutf-8 mtumiaji Mtumiajibarua pepebarua pepe, nenosirinenosiri db.session.ongezamtumiaji db.session.commit flashAkaunti imeundwa kwa mafanikio!, mafanikio rudisha kuelekeza url_foringia return mbinuGET, POSTdef login: if request.method POST: barua pepe request.formemail password request.formpassword mtumiaji Mtumiaji.query.filter_byemailemail. kwanza ikiwa mtumiaji na bcrypt.check_password_hashuser.password, password: flashIngia imefaulu!, mafanikio rudisha uelekeo upyaurl_fornyumbani kwingine: flashImeshindwa kuingia. Tafadhali angalia barua pepe na nenosiri lako., hatari return render_templatelogin.htmlHatua ya 5: Tekeleza neno la siri hashingKifurushi cha flask_bcrypt kinatumika kuharakisha manenosiri kabla ya kuyahifadhi kwenye hifadhidata. Hii tayari imeongezwa kwa nambari iliyo hapo juu.Hatua ya 6: Ongeza kushughulikia makosaHitilafu ya kushughulikia barua pepe au ingizo lisilo sahihi pia limeongezwa kwa msimbo ulio hapo juu.Sasa unaweza kuunda violezo muhimu vya HTML register.html, login.html, n.k. na utekeleze programu yako ya Flask kwa kutumia:bashipython app.pyMfano huu unatoa utekelezaji wa kimsingi wa usajili wa mtumiaji na utendakazi wa kuingia na hifadhidata ya PostgreSQL na hashing ya nenosiri. Huenda ukahitaji kuirekebisha kulingana na mahitaji yako mahususi. 