<prompt> Tengeneza programu ya wavuti inayotegemea Python kwa kutumia CherryPy ambayo inaruhusu watumiaji kuunda, kuhariri, na kufuta madokezo. Hifadhi madokezo katika hifadhidata ya PostgreSQL na uongeze usaidizi wa kutafuta madokezo kwa maneno muhimu. PLINFORMAT  <response>: kuagiza cherrypykuagiza psycopg2darasa NoteApp: def __init__binafsi: self.conn psycopg2.connectdbnamenotes useryour_user passwordyour_password cherrypy.fichua def indexbinafsi: rudisha Karibu kwenye Programu ya Kumbuka! cherrypy.fichua def kuunda binafsi, kichwa, yaliyomo: na self.conn.cursor kama cur: cur.executeINGIZA madokezo kichwa, maudhui THAMANI s, s, kichwa, maudhui self.conn.commit return fKumbuka title imeundwa kwa mafanikio. cherrypy.fichua def editbinafsi, kumbuka_id, titleNone, contentNone: ikiwa sio kichwa na sio yaliyomo: kurudi Hakuna mabadiliko yaliyotolewa. na self.conn.cursor kama cur: ikiwa kichwa na yaliyomo: cur.executeSASISHA madokezo SET titles, contents WHERE ids, kichwa, maudhui, note_id jina la elif: cur.executeSASISHA madokezo SET titles WHERE ids, kichwa, note_id kwingine: cur.executeSASISHA madokezo SET contents WHERE ids, maudhui, note_id self.conn.commit return fDokezo note_id imesasishwa kwa ufanisi. cherrypy.fichua def deletebinafsi, note_id: na self.conn.cursor kama cur: cur.executeFUTA KUTOKA KWA vidokezo WAPI ids, kumbuka_id, self.conn.commit return fDokezo note_id limefutwa kwa mafanikio. cherrypy.fichua def tafuta binafsi, neno kuu: na self.conn.cursor kama cur: cur.executeCHAGUA KUTOKA madokezo AMBAPO kichwa INAFANANA NA s AU maudhui KAMA s, fneno kuu, fneno kuu matokeo cur.fetchall ikiwa sio matokeo: return Hakuna madokezo yaliyopatikana na neno kuu lililotolewa. majibu kwa matokeo ya matokeo: response fID: matokeo0, Kichwa: matokeo1, Maudhui: matokeo2 kurudisha majibukama __name__ __main__: cherrypy.quickstartNoteApp 