บทที่ 6 ขั้นตอน การแก้ไขข้อมูลที่อยู่ใน sql แก้ไขจากหน้า ฟอร์ม

เราสามารถใช้ python (ไพธอน)  ในการดึงข้อมูลมาแสดงในรูแแบบฟอร์มได้ แล้วทำการแก้ไขข้อมูลจากฐานข้อมูล โดยใช้ Flask (แฟลก) โค๊ด SQL (เอส-คิว-แอล) ของ python ที่ใช้ก็ไม่ต่างจากภาษาอืนเลย ใช้เหมือนกัน ใช้งานง่าย

หลักการทำงานก็เหมือนกับการลบข้อมูล แต่จะมีการดึงข้อมูลมาแสดง เหมือนเอา การลบข้อมูลการแสดงข้อมูลมารวมกัน

ขั้นตอนที่1 ให้ทำการสร้างฟอร์มแก้ไข เพื่อใช้ในการแสดงข้อมูลเดิมและทำการแก้ไข

<body>
  {% for row in rows %}

      <form action = "/edit/{{ row[0] }}" method = "POST">
          <table border="0" width="50"  align="center">
         <thead>
          <tr align="center"></tr>
            <td width="50%" align="center"><h1>แก้ไขข้อมูล</h1></td>
            <tr align="center"></tr>
            <td width="50%">ชื่อ <input type="text" name="name_first"  value="{{ row[1] }}"/></td>
            <tr align="center"></tr>
              <td width="50%">นามสกุล<input type="text" name="name_last"  value="{{ row[2] }}"/></td>
            <tr align="center"></tr>
              <td width="50%">สีที่ชอบ<input type="text" name= "favorite_color"  value="{{ row[3] }}"/></td>
            <tr align="center"></tr>
         <td width="50%"><input type="submit" value="บันทึก" /></td>
         </thead>
          </table>
      </form>

  <h3><a href = "\">กลับหน้าหลัก</a></h3>
 {% endfor %}
   </body>

ขั้นตอนที่2 สร้าง mettho edit เป็น metthon edit ไว้แก้ไข และ enteredit ใช้ในการแสดงข้อมูลเก่า 

ส่วนที่1 metthon edit

@app.route('/edit/<postID>', methods=['POST', 'GET'])
def edit(postID):
    request.method == 'POST'
    idd = postID
    name = request.form['name_first']
    lastname = request.form['name_last']
    color = request.form['favorite_color']
    print idd
    try:
            con = p.connect(host='127.0.0.1', database='test', user='testerp', password='test123')
            cur = con.cursor()

            sql = "update test_python set name_first= '%s', name_last= '%s' , favorite_color= '%s' WHERE id = '%s' " % (name, lastname, color, idd)
            sql = sql.encode('utf-8')
            try:
                cur.execute(sql)
                con.commit()
                print ('เแก้ไขอมูล เรียบร้อยแล้ว')
                return ' ID: %s' % idd + '<br>'\
                       +'Edit Name: %s' % name + '<br>' \
                       + 'Edit Lastname: %s' % lastname + '<br>' \
                       + 'Edit Color: %s' % color + '<br>'+ '<META HTTP-EQUIV="Refresh" CONTENT="3;http://127.0.0.1:5000/list">'
            except:
                con.rollback()
                print('แก้ไขข้อมูล ผิดพลาด')
    except p.DatabaseError:
             print ('Error %s' % p.DatabaseError)

ส่วนที่2 enteredit

@app.route('/enteredit/<postID>', methods=['POST', 'GET'])
def enteredit(postID):
    idd = postID
    con = p.connect(host='127.0.0.1', database='test', user='testerp', password='test123')
    cur = con.cursor()
    cur.execute('SELECT version()')
    sql = "SELECT * FROM test_python  WHERE id = '%s'" % idd
    sql = sql.encode('utf-8')
    cur.execute(sql)
    rows = cur.fetchall()
    return render_template("edituser.html", rows=rows)

ภาพตัวอย่างจากการรันโปรแกรมคลิกที่ปุ่มแก้ไข

list ฟอร์ม Show
list ฟอร์ม Show

ทำการแก้ไขข้อมูล

ฟอร์มแก้ไขข้อมูล ที่ยังไม่ถูกแก้ไข
ฟอร์มแก้ไขข้อมูล ที่ยังไม่ถูกแก้ไข
ฟอร์มแก้ไขข้อมูล ถูกแก้ไข
ฟอร์มแก้ไขข้อมูล ถูกแก้ไข

ผลลัพธ์ข้อมูลใหม่

ผลลัพธ์ข้อมูลใหม่
ผลลัพธ์ข้อมูลใหม่

ทั้งหมดนี้เป็นส่วนหนึ่งของการ เขียน Python ที่มีการเชื่อมต่อกับฐานข้อมูล บทเรียนที่ท่านได้ศึกษามา หวังว่าจะเป็นประโยชน์ไม่มากก็น้อย 

หัวเรื่อง
บทเรียน Python Framework Flask Form
หมวดหมู่
Python Framework Flask, Python Framework Flask
ฮิต
39590
ผู้สร้างเอกสาร
ae
วันที่สร้างเอกสาร
2017-06-27 18:40:26

python_flask_form.zip

ประเภทไฟล์ zip

ขนาดไฟล์ 8.28 KB

ผู้อัพโหลดไฟล์ ae

วันที่อัพโหลด 2017-06-27 11:26:29


กระทู้ล่าสุดจากเว็บบอร์ด
หัวข้อกระทู้
ตอบ
เปิดดู
ล่าสุด
ทำความรู้จัก Linear regression เทคนิคพื้นฐานทางสถิติในการทำนายข้อมูล
โดย athirach.offcial อ 26 มี.ค. 2024 3:04 pm บอร์ด Python Knowledge
0
118
อ 26 มี.ค. 2024 3:04 pm โดย athirach.offcial View Topic ทำความรู้จัก Linear regression เทคนิคพื้นฐานทางสถิติในการทำนายข้อมูล
ราคาเครื่อง Server Dell R210 II เมื่อ 11 ปีก่อน (15 พ.ค. 2013 )
โดย mindphp อ 26 มี.ค. 2024 2:49 am บอร์ด ถาม - ตอบ คอมพิวเตอร์
0
112
อ 26 มี.ค. 2024 2:49 am โดย mindphp View Topic ราคาเครื่อง Server Dell R210 II เมื่อ 11 ปีก่อน (15 พ.ค. 2013 )
CPU ที่สามารถใช้ได้กับเมนบอร์ดซ็อกเก็ต FCLGA1155 บนเครื่อง Dell Server R210 II
โดย mindphp อ 26 มี.ค. 2024 1:45 am บอร์ด Microsoft Office Knowledge & line & Etc
1
120
อ 26 มี.ค. 2024 1:49 am โดย mindphp View Topic CPU ที่สามารถใช้ได้กับเมนบอร์ดซ็อกเก็ต FCLGA1155 บนเครื่อง Dell Server R210 II
อัพเดท joomla 3.10.12 to 4 ไม่ได้ครับ ติด Invalid login
โดย Itadm จ 25 มี.ค. 2024 3:35 pm บอร์ด Joomla Development
7
2227
ศ 29 มี.ค. 2024 1:50 pm โดย mindphp View Topic อัพเดท joomla 3.10.12 to 4 ไม่ได้ครับ ติด Invalid login
แนะนำการเดินทาง และสถานที่ท่องเที่ยวในจังหวัดขอนแก่น
โดย athirach.offcial จ 25 มี.ค. 2024 3:08 pm บอร์ด พูดคุยเรื่องทั่วไป จับฉ่าย
0
167
จ 25 มี.ค. 2024 3:08 pm โดย athirach.offcial View Topic แนะนำการเดินทาง และสถานที่ท่องเที่ยวในจังหวัดขอนแก่น
สอบถาม library หรือคำสั่งดู VDO ใช้เวลาดูไปเท่าไรและดูจบแล้วหรือไม่
โดย eange08 จ 25 มี.ค. 2024 1:28 pm บอร์ด Programming - PHP
2
852
พฤ 28 มี.ค. 2024 12:25 pm โดย eange08 View Topic สอบถาม library หรือคำสั่งดู VDO ใช้เวลาดูไปเท่าไรและดูจบแล้วหรือไม่
M181 - อธิราช กุลเมือง
โดย athirach.offcial จ 25 มี.ค. 2024 10:15 am บอร์ด Dev Teams
0
8
จ 25 มี.ค. 2024 10:15 am โดย athirach.offcial View Topic M181 - อธิราช กุลเมือง
การสำรองข้อมูล Backup Joomla! ทั้งเว็บ ด้วย MJClone
โดย mindphp อ 24 มี.ค. 2024 1:33 am บอร์ด MindPHP News & Feedback
0
204
อ 24 มี.ค. 2024 1:33 am โดย mindphp View Topic การสำรองข้อมูล Backup Joomla! ทั้งเว็บ ด้วย MJClone