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

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

บทที่ 3 ขั้นตอนการเขียน python โดยใช้ Flask การรับข้อมูลผ่านทางหน้าฟอร์มแล้วบันทึกลงฐานข้อมูล

ขั้นตอนนี้เป็นการเพิ่มข้อมูลลงฐานข้อมูลหรือ SQL (เอส-คิว-แอล) โดยการรับค่าจากหน้าฟอร์ม ส่วนของ Python (ไพธอน) สามารถติดต่อกับฐานข้อมูลได้หลายตัว แต่จะยกตัวอย่างโปรแกรมที่ใช้ Postgresql 

ขั้นตอนที่ 1 สร้างหน้าฟอร์มรับข้อมูล ใช้ html เขียนหน้าฟอร์ม

โดยการรับข้อมูลผ่าน textbox แล้วกด submit

<form action = "{{ url_for('addrec') }}" 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" /></td>
            <tr align="center"></tr>
              <td width="50%">นามสกุล<input type = "text" name = "name_last" /></td>
            <tr align="center"></tr>
              <td width="50%">สีที่ชอบ<input type = "text" name = "favorite_color" /></td>
            <tr align="center"></tr>
         <td width="50%"><input type = "submit" value = "บันทึก" /></td>
         </thead>
         </table>
      </form>

 ตัวอย่างภาพ

สร้างหน้าฟอร์มรับข้อมูล ใช้ html
สร้างหน้าฟอร์มรับข้อมูล ใช้ html

 

ขั้นตอนที่ 2 สร้าง method Add เพื่อที่จะเขียนคำสั่งรับค่า แล้ว save ลงฐานข้อมูล

คำสั่งเปิดหน้าเพิ่มข้อมูล

@app.route('/enternew')
def new_student():
    return render_template('adduser.html')

ส่วนของ method Add รับค่าจากฟอร์ม adduser มาเป็น Post หรือ get แล้ว นำมาแปลงค่า แล้วเพิ่มลง ฐานข้อมูล

@app.route('/addrec', methods=['POST', 'GET'])
def addrec():
    if request.method == 'POST':
        name = request.form['name_first']
        lastname = request.form['name_last']
        color = request.form['favorite_color']
        try:
            con = p.connect(host='127.0.0.1', database='test', user='testerp', password='test123')
            cur = con.cursor()
            sql = "insert into test_python (name_first, name_last, favorite_color) values ('%s','%s','%s')" % (name, lastname, color)
            sql = sql.encode('utf-8')
            try:
                cur.execute(sql)
                con.commit()
                return 'Name :' + name + '<br>' + 'Color 
            except:
                con.rollback()
                print('เพิ่มข้อมูล ผิดพลาด')
        except p.DatabaseError:
             print ('Error %s' % p.DatabaseError)

 ตัวอย่างจากภาพ

method Add รับค่าจากฟอร์ม adduser
method Add รับค่าจากฟอร์ม adduser

ผลรับที่ได้จากการรัน

ฟอร์มรับข้อมูล
ฟอร์มรับข้อมูล

 

ข้อมูลใน ฐานข้อมูล
ข้อมูลใน ฐานข้อมูล

เป็นขั้นตอนการเพิ่มข้อมูล ลงฐานข้อมูล ด้วยภาษา python บทต่อไปเป็นการแสดง แก้ไข ลบ 

 

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

python_flask_form.zip

ประเภทไฟล์ zip

ขนาดไฟล์ 8.28 KB

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

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


กระทู้ล่าสุดจากเว็บบอร์ด
หัวข้อกระทู้
ตอบ
เปิดดู
ล่าสุด
บริษัท RCP ลูกค้ายืนยันการใช้งานได้ให้อัพขึ้นฐานจริง
โดย Rujikon พฤ 21 มิ.ย. 2018 7:20 pm บอร์ด Mindphp Task (ทดลองงาน)
2
5
ศ 22 มิ.ย. 2018 3:56 am โดย mindphp
New อัพเดท state auto หลังR- จาก state ของ RMA เป็น deliver [2018-06][003]
โดย Rujikon พฤ 21 มิ.ย. 2018 7:18 pm บอร์ด อาร์ซีพี โกลบอล จำกัด - Tester
1
2
พฤ 21 มิ.ย. 2018 7:19 pm โดย Rujikon
R - เปลี่ยนชื่อปุ่ม RMA Line จาก Confirm เป็น Receive [2018-06][002]
โดย Rujikon พฤ 21 มิ.ย. 2018 7:13 pm บอร์ด อาร์ซีพี โกลบอล จำกัด - Tester
2
3
พฤ 21 มิ.ย. 2018 7:14 pm โดย Rujikon
Q - Import ไฟล์ Customer เข้าระบบไม่ได้
โดย Rujikon พฤ 21 มิ.ย. 2018 4:49 pm บอร์ด บริษัท เซนิธ เบบี้ แคร์ จำกัด - Tester
3
8
พฤ 21 มิ.ย. 2018 4:59 pm โดย thatsawan
ยืนยันหน้าจอการทำงานของ auto transfer และคำถาม
โดย nuattawoot พฤ 21 มิ.ย. 2018 2:06 pm บอร์ด Hachanna - Testter
5
27
ศ 22 มิ.ย. 2018 4:13 am โดย mindphp
ฺB - ปรับ Inventory loss แล้วไม่ได้อย่างที่กระทู้แนะนำ [2018-06][009]
โดย Rujikon พฤ 21 มิ.ย. 2018 1:59 pm บอร์ด Hachanna - Testter
0
2
พฤ 21 มิ.ย. 2018 1:59 pm โดย Rujikon
Q - เรื่องภาษี [2018-06][008]
โดย Rujikon พฤ 21 มิ.ย. 2018 1:48 pm บอร์ด Hachanna - Testter
0
5
พฤ 21 มิ.ย. 2018 1:48 pm โดย Rujikon
งานประจำวันที่ 21มิถุนายน 2561
โดย taemmynatchapon พฤ 21 มิ.ย. 2018 10:19 am บอร์ด M063 - ณัชพล ชัยวุฒิ
0
1
พฤ 21 มิ.ย. 2018 10:19 am โดย taemmynatchapon
งานประจำวันที่ 21 มิถุนายน 2561
โดย Rujikon พฤ 21 มิ.ย. 2018 10:05 am บอร์ด M060 - นายรุจิกร พงษ์พิละ
2
8
พฤ 21 มิ.ย. 2018 7:22 pm โดย Rujikon
งานประจำวันที่ 21 มิถุนายน 2561
โดย wilawan พฤ 21 มิ.ย. 2018 9:48 am บอร์ด M062 - วิลาวัณย์ นักษัตรมณฑล
1
12
พฤ 21 มิ.ย. 2018 6:46 pm โดย wilawan
งานประจำวันที่ 21 มิถุนายน 2561
โดย Parichat พฤ 21 มิ.ย. 2018 9:37 am บอร์ด M061 - ปาริชาติ รัตโณภาส
1
4
พฤ 21 มิ.ย. 2018 7:14 pm โดย Parichat
เมื่อมีโอกาสทำงาน...
โดย mindphp พฤ 21 มิ.ย. 2018 12:59 am บอร์ด พูดคุยเรื่องทั่วไป จับฉ่าย
0
20
พฤ 21 มิ.ย. 2018 12:59 am โดย mindphp
R - รายละเอียดวิธีคิดต้นทุนสินค้า [2018-06][007]
โดย Rujikon พ 20 มิ.ย. 2018 8:06 pm บอร์ด Mindphp Task (ทดลองงาน)
0
2
พ 20 มิ.ย. 2018 8:06 pm โดย Rujikon
สอบถามเกี่ยวกับ onclick html
โดย AePongsak พ 20 มิ.ย. 2018 6:33 pm บอร์ด ปัญหาการใช้ phpBB3, SMF, Joomla, Wordpress, CMS CRM
0
20
พ 20 มิ.ย. 2018 6:33 pm โดย AePongsak
B - ปุ่มปริ้น inv มี 2 ปุ่ม
โดย thatsawan พ 20 มิ.ย. 2018 6:25 pm บอร์ด M.D.Soft Co.,Ltd. - Tester
0
1
พ 20 มิ.ย. 2018 6:25 pm โดย thatsawan
R - รายละเอียดวิธีคิดต้นทุนสินค้า [2018-06][007]
โดย Rujikon พ 20 มิ.ย. 2018 4:21 pm บอร์ด Hachanna - Testter
1
13
พ 20 มิ.ย. 2018 9:00 pm โดย Rujikon
B - หน้า Detail ช่องว่างด้านล่างเยอะไป
โดย AePongsak พ 20 มิ.ย. 2018 2:23 pm บอร์ด Doy-shop ( 15 พ.ค. - 29 พ.ค. 61)
1
8
พฤ 21 มิ.ย. 2018 12:00 pm โดย Parichat
B - คลิกที่รูปแล้วไม่ไปหน้า Detail
โดย AePongsak พ 20 มิ.ย. 2018 2:20 pm บอร์ด Doy-shop ( 15 พ.ค. - 29 พ.ค. 61)
1
3
พฤ 21 มิ.ย. 2018 1:11 pm โดย Parichat
B - กรอบหน้าดาวน์โหลดไม่โค้ง
โดย AePongsak พ 20 มิ.ย. 2018 2:11 pm บอร์ด Doy-shop ( 15 พ.ค. - 29 พ.ค. 61)
1
7
พฤ 21 มิ.ย. 2018 5:16 pm โดย Parichat
B - ไม่เห็นตัวเลขที่ แบ่งหน้าสินค้า
โดย AePongsak พ 20 มิ.ย. 2018 2:07 pm บอร์ด Doy-shop ( 15 พ.ค. - 29 พ.ค. 61)
1
3
พฤ 21 มิ.ย. 2018 1:15 pm โดย Parichat