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

python_flask_form.zip

ประเภทไฟล์ zip

ขนาดไฟล์ 8.28 KB

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

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


กระทู้ล่าสุดจากเว็บบอร์ด
หัวข้อกระทู้
ตอบ
เปิดดู
ล่าสุด
ตัวอย่างการสร้าง Service odoo13 บน Ubuntu 16.04
โดย mindphp ส 12 ต.ค. 2019 1:35 am บอร์ด Linux - Web Server
0
25
ส 12 ต.ค. 2019 1:35 am โดย mindphp
MJupgrade Joomla 1.5.26 > 3.9 ขึ้น Error: Could not connect to MySQL server.
โดย เห็ด อินโมชั่น ศ 11 ต.ค. 2019 3:30 pm บอร์ด Joomla Development
3
47
ศ 11 ต.ค. 2019 5:14 pm โดย เห็ด อินโมชั่น
MJupgrade Joomla 1.5.26 > 3.9 ขึ้น Error: Could not connect to MySQL server.
โดย เห็ด อินโมชั่น ศ 11 ต.ค. 2019 4:59 pm บอร์ด ปัญหาการใช้ phpBB3, SMF, Joomla, Wordpress, CMS CRM
7
65
ส 12 ต.ค. 2019 3:35 am โดย mindphp
อยากทราบวิธีนับจำนวน id ที่ซ้ำกัน ครับ
โดย jamepiyawat ศ 11 ต.ค. 2019 5:06 pm บอร์ด SQL - Database
3
41
ศ 11 ต.ค. 2019 6:20 pm โดย jamepiyawat
การ Search ค้นหาข้อมูลของบอร์ด phpBB
โดย aninthana พฤ 10 ต.ค. 2019 6:46 pm บอร์ด Wordpress user Guide Knowledge
0
40
พฤ 10 ต.ค. 2019 6:46 pm โดย aninthana
ทำป้าย PopUp ด้วย Modal ใน Bootstrap เวอร์ชั่น 4
โดย jamepiyawat พฤ 10 ต.ค. 2019 5:20 pm บอร์ด Booststap Knowledge
0
34
พฤ 10 ต.ค. 2019 5:20 pm โดย jamepiyawat
ทำยังไงถึงจะไม่ให้แสดงเลข ID หน้า Alias ได้ครับ
โดย jamepiyawat พฤ 10 ต.ค. 2019 4:03 pm บอร์ด Joomla Development
1
30
พฤ 10 ต.ค. 2019 6:02 pm โดย tsukasaz
ทำไมผมถึงดึงข้อมูลชื่อหมวดหมู่ออกมาแสดงหน้าตั้งค่า module ไม่ได้ครับ
โดย jamepiyawat พฤ 10 ต.ค. 2019 3:47 pm บอร์ด Joomla Development
2
37
พฤ 10 ต.ค. 2019 6:36 pm โดย jamepiyawat
ตัวเลขด้านหน้าข้อความที่เราตั้ง Alias คืออะไรครับ
โดย jamepiyawat พฤ 10 ต.ค. 2019 11:36 am บอร์ด Joomla Development
5
40
พฤ 10 ต.ค. 2019 2:46 pm โดย mindphp
แก้ปัญหา Error Ignoring file '50unattended-upgrades.ucf-old' in directory บน Ubunto 16.04 ติดตั้ง apt-get
โดย mindphp พฤ 10 ต.ค. 2019 5:42 am บอร์ด Linux - Web Server
0
20
พฤ 10 ต.ค. 2019 5:42 am โดย mindphp
Q - สอบถามวิธี Upload file html ไปยัง web service โดยใช้คำสั่ง curl ใน PHP
โดย birdkritsna พ 09 ต.ค. 2019 3:42 pm บอร์ด Programming - PHP
6
101
พฤ 10 ต.ค. 2019 2:07 pm โดย birdkritsna
10 เเหล่งช๊อปปิ้งใรเชียงรายที่ต้องไปให้ได้
โดย nemo413 พ 09 ต.ค. 2019 1:04 pm บอร์ด พูดคุยเรื่องทั่วไป จับฉ่าย
0
33
พ 09 ต.ค. 2019 1:04 pm โดย nemo413
สอบถามครับ อยากได้ url ของลิงค์ ให้มาแสดงในช่อง ต้องทำยังไงครับ
โดย chatee supasand พ 09 ต.ค. 2019 12:22 pm บอร์ด Programming - C/C++ & java & Python
6
65
พ 09 ต.ค. 2019 1:41 pm โดย chatee supasand
Microsoft Word สามารถ แปลงไฟล์เสียง ให้เป็นข้อความได้แล้วใน Office 365
โดย chatee supasand พ 09 ต.ค. 2019 11:32 am บอร์ด Microsoft Office Knowledge & line & Etc
0
29
พ 09 ต.ค. 2019 11:32 am โดย chatee supasand
สอบถามการเขียนโค้ด กรอกข้อมูลหน้าแรก แล้วให้กดส่ง ไปยังหน้าที่สองครับผม
โดย Jakkrit Saengngoenon อ 08 ต.ค. 2019 1:40 pm บอร์ด Programming - PHP
1
55
อ 08 ต.ค. 2019 1:50 pm โดย mindphp
ขอสอบถามเกี่ยวกับ license ของ ฟอนต์ ไทยสารบรรณ (TH Sarabun PSK)
โดย Anonymous อ 08 ต.ค. 2019 8:03 am บอร์ด Programming - PHP
0
39
อ 08 ต.ค. 2019 8:03 am โดย บุคคลทั่วไป
การส่ง parameters ไปกับการ Request แบบ Get ด้วย curl
โดย mindphp จ 07 ต.ค. 2019 12:12 am บอร์ด PHP Knowledge
0
83
จ 07 ต.ค. 2019 12:12 am โดย mindphp
Q สอบถามลองเขียน php webservice ด้วย nuSoap แล้วขึ้น Error ครับ
โดย birdkritsna ส 05 ต.ค. 2019 5:37 pm บอร์ด Programming - PHP
10
181
พฤ 10 ต.ค. 2019 10:29 am โดย birdkritsna
ทำยังไงถึงปุ่มจะอยู่ระดับเดียวกันครับ
โดย jamepiyawat ส 05 ต.ค. 2019 3:08 pm บอร์ด HTML CSS
6
121
ส 05 ต.ค. 2019 4:48 pm โดย jamepiyawat
Microsoft Surface Neo อีกหนึ่งผลิตภันฑ์แท็บเล็ตหน้าจอคู่ของ Microsoft
โดย chatee supasand ส 05 ต.ค. 2019 2:33 pm บอร์ด Microsoft Office Knowledge & line & Etc
0
49
ส 05 ต.ค. 2019 2:33 pm โดย chatee supasand