ให้เรตสมาชิก: 3 / 5

ดาวใช้งานดาวใช้งานดาวใช้งานดาวไม่ได้ใช้งานดาวไม่ได้ใช้งาน
 

บทที่ 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
ฮิต
4448
ผู้สร้างเอกสาร
ae
วันที่สร้างเอกสาร
2017-06-27 18:40:26

python_flask_form.zip

ประเภทไฟล์ zip

ขนาดไฟล์ 8.28 KB

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

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


กระทู้ล่าสุดจากเว็บบอร์ด
หัวข้อกระทู้
ตอบ
เปิดดู
ล่าสุด
ผู้รู้ ขอความอนุเคราะห์แก้ code ให้หน่อย
โดย goobot_com จ 23 เม.ย. 2018 10:22 pm บอร์ด Programming - PHP
0
3
จ 23 เม.ย. 2018 10:22 pm โดย goobot_com
แก้ code ให้หน่อย while(list($key, $value) = each ไม่ทำงาน เปลี่ยนเป็น foreach($_POST[id2] as $key =>$value)แล้วไม่ได้
โดย goobot_com จ 23 เม.ย. 2018 10:20 pm บอร์ด Programming - PHP
0
5
จ 23 เม.ย. 2018 10:20 pm โดย goobot_com
while(list($key, $value) = each ไม่ทำงาน เปลี่ยนเป็น foreach($_POST[id2] as $key => $value)
โดย Anonymous จ 23 เม.ย. 2018 10:14 pm บอร์ด Programming - PHP
0
4
จ 23 เม.ย. 2018 10:14 pm โดย บุคคลทั่วไป
จะทำให้เว็บฟอรั่มออนไลน์ได้ไหมครับ?
โดย Anonymous จ 23 เม.ย. 2018 1:52 pm บอร์ด Programming - PHP
0
11
จ 23 เม.ย. 2018 1:52 pm โดย บุคคลทั่วไป
รูปแบบการทำงานของ NAT มีอะไรบ้าง
โดย Patcharanan.0399 ศ 20 เม.ย. 2018 5:14 pm บอร์ด Share Knowledge
0
45
ศ 20 เม.ย. 2018 5:14 pm โดย Patcharanan.0399
ส่วนที่ไม่เข้าใจในบทความ Module MD Client History
โดย alisa93 ศ 20 เม.ย. 2018 4:56 pm บอร์ด Mobile Programming - Android, iOS, Window Phone
2
26
ศ 20 เม.ย. 2018 5:56 pm โดย alisa93
Loopback คืออะไร
โดย Patcharanan.0399 ศ 20 เม.ย. 2018 4:21 pm บอร์ด Share Knowledge
0
30
ศ 20 เม.ย. 2018 4:21 pm โดย Patcharanan.0399
สอบถามเรื่อง SQL การ SELECT id
โดย AePongsak ศ 20 เม.ย. 2018 4:21 pm บอร์ด SQL - Database
5
69
ศ 20 เม.ย. 2018 5:05 pm โดย AePongsak
Q - ติดตั้งโมดูลแล้วไฟล์ภาษาหาย
โดย Parichat ศ 20 เม.ย. 2018 3:52 pm บอร์ด Joomla Development
2
28
ศ 20 เม.ย. 2018 4:20 pm โดย Parichat
Q - ทำ Drop Down ในหน้าผู้ดูแลระบบของโมดูล
โดย Parichat ศ 20 เม.ย. 2018 1:22 pm บอร์ด Joomla Development
13
72
จ 23 เม.ย. 2018 3:57 pm โดย tsukasaz
ผมสงใสทำไมรีโมทแอร์ ทำไมถึงต้องอยุ่ข้างประตู
โดย nuattawoot ศ 20 เม.ย. 2018 12:58 am บอร์ด พูดคุยเรื่องทั่วไป จับฉ่าย
2
59
ศ 20 เม.ย. 2018 9:47 am โดย tsukasaz
Normal Form ของ Normalization มีอะไรบ้าง
โดย Patcharanan.0399 พฤ 19 เม.ย. 2018 6:37 pm บอร์ด Share Knowledge
0
22
พฤ 19 เม.ย. 2018 6:37 pm โดย Patcharanan.0399
Q - import ฐานข้อมูลมาแต่ Error
โดย Parichat พฤ 19 เม.ย. 2018 5:55 pm บอร์ด SQL - Database
2
40
พฤ 19 เม.ย. 2018 6:43 pm โดย Parichat
ทำไมต้องมี IPv6 ....?
โดย Patcharanan.0399 พฤ 19 เม.ย. 2018 3:04 pm บอร์ด Share Knowledge
0
33
พฤ 19 เม.ย. 2018 3:04 pm โดย Patcharanan.0399
ต้องการใส่เสียงลงใน application
โดย Oley Rujisak พฤ 19 เม.ย. 2018 1:12 pm บอร์ด Mobile Application Developing- Android, iOS
0
23
พฤ 19 เม.ย. 2018 1:12 pm โดย Oley Rujisak
มาแล้ว Joomla 3.8.7 อัพเดทล่าสุด แก้ไข Bug ต่างๆ และปรับปรุงระบบให้ดีขึ้น
โดย tsukasaz พฤ 19 เม.ย. 2018 11:09 am บอร์ด PHP News
0
32
พฤ 19 เม.ย. 2018 11:09 am โดย tsukasaz
3-way Handshake (ทรีเวย์ แฮนเชค)คืออะไร
โดย Patcharanan.0399 พ 18 เม.ย. 2018 6:04 pm บอร์ด Share Knowledge
0
33
พ 18 เม.ย. 2018 6:04 pm โดย Patcharanan.0399
TCP (ทีซีพี) และ UDP (ยูดีพี) แตกต่างกันอย่างไร
โดย Patcharanan.0399 พ 18 เม.ย. 2018 5:46 pm บอร์ด Share Knowledge
1
50
พฤ 19 เม.ย. 2018 3:50 am โดย mindphp
ICMP Protocol (ไอซีเอ็มพี โปรโตคอล) คืออะไร
โดย Patcharanan.0399 พ 18 เม.ย. 2018 5:24 pm บอร์ด Share Knowledge
0
27
พ 18 เม.ย. 2018 5:24 pm โดย Patcharanan.0399
ไม่สามารถติดตั้ง selenium v.2.9.1 ได้
โดย Patcharanan.0399 พ 18 เม.ย. 2018 4:35 pm บอร์ด ถาม - ตอบ คอมพิวเตอร์
7
60
พฤ 19 เม.ย. 2018 3:45 am โดย mindphp