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

python_flask_form.zip

ประเภทไฟล์ zip

ขนาดไฟล์ 8.28 KB

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

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


กระทู้ล่าสุดจากเว็บบอร์ด
หัวข้อกระทู้
ตอบ
เปิดดู
ล่าสุด
อยากทราบวิธีการ แสดง icon logo ในหน้า favorite ของ safiri มีการแสดง icon ที่กำหนด
โดย Ittichai_chupol ศ 31 ม.ค. 2020 7:23 pm บอร์ด Programming - PHP
1
274
ศ 31 ม.ค. 2020 7:25 pm โดย mindphp
ขอสอบถามเกี่ยวกับการดึงข้อมูลภายในหน้าเดียวกันครับ
โดย benzas00123 ศ 31 ม.ค. 2020 7:08 pm บอร์ด HTML CSS
1
252
ศ 31 ม.ค. 2020 7:30 pm โดย benzas00123
Q-อยากทราบว่าต้องการย่อขยายรูปต้องทำยังไงค่ะ
โดย nutchasn ศ 31 ม.ค. 2020 6:29 pm บอร์ด ถาม - ตอบ คอมพิวเตอร์
1
236
ศ 31 ม.ค. 2020 6:33 pm โดย Ittichai_chupol
วิธีการปรับเปลี่ยน css เมือจอแสดงผมมีขนาดที่แตกตางกัน โดยการ override template เพื่อลดจำนวน โคด css
โดย Ittichai_chupol ศ 31 ม.ค. 2020 6:03 pm บอร์ด CSS Knowledge
0
197
ศ 31 ม.ค. 2020 6:03 pm โดย Ittichai_chupol
Flask dropzone กับคำสั่งในการตั้งค่าตัว โมดูลต่างๆ
โดย benzas00123 ศ 31 ม.ค. 2020 6:02 pm บอร์ด Python Knowledge
0
844
ศ 31 ม.ค. 2020 6:02 pm โดย benzas00123
การจัดซื้อใน โปรแกรมOpen erp ให้มีประสิทธิภาพ
โดย nutchasn ศ 31 ม.ค. 2020 5:56 pm บอร์ด Accounting software & ERP โปรแกรมบัญชี ระบบอีอาร์พี
0
107
ศ 31 ม.ค. 2020 5:56 pm โดย nutchasn
Flask dropzone โมดูลสำหรับการสร้าง Drop file อย่างง่าย
โดย benzas00123 ศ 31 ม.ค. 2020 5:21 pm บอร์ด Python Knowledge
0
181
ศ 31 ม.ค. 2020 5:21 pm โดย benzas00123
ทำความรู้ ภ.ง.ด 94 เพื่อให้เข้าใจการยื่นภาษีครึ่งปี
โดย nutchasn ศ 31 ม.ค. 2020 3:10 pm บอร์ด Accounting software & ERP โปรแกรมบัญชี ระบบอีอาร์พี
0
145
ศ 31 ม.ค. 2020 3:10 pm โดย nutchasn
เรียนรู้การยื่นภาษีเงินได้บุคคลธรรมดา เพื่อให้ยื่นภาษีได้ถูกต้อง
โดย nutchasn ศ 31 ม.ค. 2020 2:42 pm บอร์ด Accounting software & ERP โปรแกรมบัญชี ระบบอีอาร์พี
0
95
ศ 31 ม.ค. 2020 2:42 pm โดย nutchasn
การหักลดหย่อนภาษี สิทธิประโยชน์ที่ทำให้เสียภาษีน้อยลง
โดย nutchasn ศ 31 ม.ค. 2020 2:07 pm บอร์ด Accounting software & ERP โปรแกรมบัญชี ระบบอีอาร์พี
0
159
ศ 31 ม.ค. 2020 2:07 pm โดย nutchasn
Refactor ไหมหละ
โดย noppadonsk ศ 31 ม.ค. 2020 9:38 am บอร์ด พูดคุยเรื่องทั่วไป จับฉ่าย
0
160
ศ 31 ม.ค. 2020 9:38 am โดย noppadonsk
วิธีการตรวจสอบกระทูู้นี้มีการอ่านหรือยัง ในเว็บบอร์ด phpbb
โดย Ittichai_chupol พฤ 30 ม.ค. 2020 7:02 pm บอร์ด PHP Knowledge
0
112
พฤ 30 ม.ค. 2020 7:02 pm โดย Ittichai_chupol
Python GUI (Tkinter) : การกำหนดให้ช่อง entry สามารถกรอกได้แค่ตัวเลขเท่านั้น
โดย benzas00123 พฤ 30 ม.ค. 2020 6:43 pm บอร์ด Python Knowledge
0
111
พฤ 30 ม.ค. 2020 6:43 pm โดย benzas00123
การแยกประเภทในโปรแกรม open erp เพื่อสะดวกในการจัดทำงบการเงิน
โดย nutchasn พฤ 30 ม.ค. 2020 6:25 pm บอร์ด Accounting software & ERP โปรแกรมบัญชี ระบบอีอาร์พี
0
122
พฤ 30 ม.ค. 2020 6:25 pm โดย nutchasn
Python GUI (Tkinter) : การกำหนดนามสกุล File ที่ต้องการจะหาใน Browse file
โดย benzas00123 พฤ 30 ม.ค. 2020 6:04 pm บอร์ด Python Knowledge
0
118
พฤ 30 ม.ค. 2020 6:04 pm โดย benzas00123
วิธีการนำเลขเวอร์ชั่นของ component joomla ออกมาแสดงที่หน้าเว็บไซต์
โดย jamepiyawat พฤ 30 ม.ค. 2020 5:47 pm บอร์ด Joomla Developing Knowledge
0
121
พฤ 30 ม.ค. 2020 5:47 pm โดย jamepiyawat
Python GUI (Tkinter) : การ Browse file แบบ multiple file จากการกดปุ่ม Button
โดย benzas00123 พฤ 30 ม.ค. 2020 5:46 pm บอร์ด Python Knowledge
0
121
พฤ 30 ม.ค. 2020 5:46 pm โดย benzas00123
ทำความรู้การปิดบัญชี เพื่อให้ทราบผลการดำเนินไปประกอบในการตัดสินใจวางแผนธุรกิจ
โดย nutchasn พฤ 30 ม.ค. 2020 5:06 pm บอร์ด Accounting software & ERP โปรแกรมบัญชี ระบบอีอาร์พี
0
116
พฤ 30 ม.ค. 2020 5:06 pm โดย nutchasn
ทำความเข้าใจในการปิดงบบัญชี เพิ่อให้เป็นการปิดงบที่สมบูรณ์
โดย nutchasn พฤ 30 ม.ค. 2020 4:36 pm บอร์ด Accounting software & ERP โปรแกรมบัญชี ระบบอีอาร์พี
0
81
พฤ 30 ม.ค. 2020 4:36 pm โดย nutchasn
อยากทราบวิธีการดึงค่าเลขเวอร์ชั่นในไฟล์ XML ของ components joomla
โดย jamepiyawat พฤ 30 ม.ค. 2020 3:28 pm บอร์ด Joomla Development
3
1513
พฤ 30 ม.ค. 2020 5:34 pm โดย tsukasaz