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

python_flask_form.zip

ประเภทไฟล์ zip

ขนาดไฟล์ 8.28 KB

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

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


กระทู้ล่าสุดจากเว็บบอร์ด
หัวข้อกระทู้
ตอบ
เปิดดู
ล่าสุด
งานประจำวันที่ 20 กันยายน 2561
โดย tatiya พฤ 20 ก.ย. 2018 9:23 am บอร์ด M065 - ตติยะ นาชัย
0
3
พฤ 20 ก.ย. 2018 9:23 am โดย tatiya
checkbox พร้อมกรองจำนวน
โดย Ittichai_chupol พ 19 ก.ย. 2018 5:49 pm บอร์ด Programming - PHP
0
17
พ 19 ก.ย. 2018 5:49 pm โดย Ittichai_chupol
การทำแผ่นรองเมาส์สำหรับวัยทำงานแบบง่าย
โดย Ittichai_chupol พ 19 ก.ย. 2018 4:53 pm บอร์ด พูดคุยเรื่องทั่วไป จับฉ่าย
0
12
พ 19 ก.ย. 2018 4:53 pm โดย Ittichai_chupol
การทำข้าวขย้ำกล้วย ให้เด็ก อายุ 3 - 6 เดือน
โดย Ittichai_chupol พ 19 ก.ย. 2018 4:51 pm บอร์ด พูดคุยเรื่องทั่วไป จับฉ่าย
0
8
พ 19 ก.ย. 2018 4:51 pm โดย Ittichai_chupol
สถานที่ท่องเทียวน่าสนใจ อุทยานแห่งชาติน้ำตกพลิ้ว จังหวัดจันทบุรี
โดย Ittichai_chupol พ 19 ก.ย. 2018 4:48 pm บอร์ด พูดคุยเรื่องทั่วไป จับฉ่าย
0
7
พ 19 ก.ย. 2018 4:48 pm โดย Ittichai_chupol
R - mod_jshopping_shipping_method โมดูลการจัดส่งสินค้า
โดย pprn พ 19 ก.ย. 2018 4:42 pm บอร์ด MT25 - นางสาวปรียากมล รินนาศักดิ์
0
4
พ 19 ก.ย. 2018 4:42 pm โดย pprn
การจัดเตรียมแปลงเพาะผักไร้ดิน แบบแปลงน้ำไม่ไหลเวียน
โดย Ittichai_chupol พ 19 ก.ย. 2018 4:25 pm บอร์ด พูดคุยเรื่องทั่วไป จับฉ่าย
0
8
พ 19 ก.ย. 2018 4:25 pm โดย Ittichai_chupol
การเพาะปลูกผักสลัดแบบไร้ดิน
โดย Ittichai_chupol พ 19 ก.ย. 2018 4:19 pm บอร์ด พูดคุยเรื่องทั่วไป จับฉ่าย
0
10
พ 19 ก.ย. 2018 4:19 pm โดย Ittichai_chupol
Q- ไม่สามารถพิมพ์ข้อความลงบน Google chrom ได้
โดย tatiya พ 19 ก.ย. 2018 12:36 pm บอร์ด ถาม - ตอบ คอมพิวเตอร์
1
32
พ 19 ก.ย. 2018 1:02 pm โดย tatiya
VDO - การทำงานของโปรแกรมเมอร์และการอัพเดทงานในเเต่ละวัน
โดย prakon พ 19 ก.ย. 2018 11:56 am บอร์ด MT24 - นายปกรณ์ วิริยะธนวิโรจน์
0
4
พ 19 ก.ย. 2018 11:56 am โดย prakon
การเดินทางจากเพชรบุรี มา กรุงเทพฯ
โดย Ittichai_chupol พ 19 ก.ย. 2018 11:39 am บอร์ด พูดคุยเรื่องทั่วไป จับฉ่าย
0
11
พ 19 ก.ย. 2018 11:39 am โดย Ittichai_chupol
งานประจำวันที่ 19 กันยายน 2561
โดย Ittichai_chupol พ 19 ก.ย. 2018 11:03 am บอร์ด M070 - อิทธิชัย ชูผล
3
22
พ 19 ก.ย. 2018 7:08 pm โดย Ittichai_chupol
Work's on Hand อิทธิชัย ชูผล M070
โดย Ittichai_chupol พ 19 ก.ย. 2018 11:01 am บอร์ด M070 - อิทธิชัย ชูผล
0
5
พ 19 ก.ย. 2018 11:01 am โดย Ittichai_chupol
งานประจำวันที่ 19 กันยายน 2561
โดย muneela พ 19 ก.ย. 2018 10:57 am บอร์ด M068 - มุนีลา หมัดบาซา
1
11
พ 19 ก.ย. 2018 7:08 pm โดย muneela
งานประจำวันที่ 19 กันยายน 2561
โดย pprn พ 19 ก.ย. 2018 10:21 am บอร์ด MT25 - นางสาวปรียากมล รินนาศักดิ์
1
13
พ 19 ก.ย. 2018 7:15 pm โดย pprn
งานประจำวันที่ 19 กันยายน 2561
โดย tai14 พ 19 ก.ย. 2018 10:00 am บอร์ด MT26 - นางสาวอัครยุภา ยงยุทธ
1
3
พ 19 ก.ย. 2018 7:02 pm โดย tai14
งานประจำวันที่ 19 กันยายน 2561
โดย prakon พ 19 ก.ย. 2018 9:53 am บอร์ด MT24 - นายปกรณ์ วิริยะธนวิโรจน์
1
10
พ 19 ก.ย. 2018 10:01 am โดย prakon
งานประจำวันที่ 19 กันยายน 2561
โดย tatiya พ 19 ก.ย. 2018 9:26 am บอร์ด M065 - ตติยะ นาชัย
1
9
พ 19 ก.ย. 2018 8:29 pm โดย tatiya
B - ระบบแสดงยอดสต็อค On Hand ของ product set ไม่ถูกต้อง
โดย rinrada พ 19 ก.ย. 2018 8:36 am บอร์ด Hachanna - Testter
0
9
พ 19 ก.ย. 2018 8:36 am โดย rinrada
งานประจำวันที่ 18 กันยายน 2561
โดย muneela อ 18 ก.ย. 2018 10:22 am บอร์ด M068 - มุนีลา หมัดบาซา
1
8
อ 18 ก.ย. 2018 7:08 pm โดย muneela