ติดต่อ database ไม่ได้ครับ

ตอบกระทู้

รูปแสดงอารมณ์
:icon_plusone: :like: :plusone: :gfb: :-D :) :( :-o 8O :? 8) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: :angry: :baa: :biggrin:
รูปแสดงอารมณ์อื่นๆ

BBCode เปิด
[img] เปิด
[url] เปิด
[Smile icon] เปิด

กระทู้แนะนำ
   

มุมมองที่ขยายได้ กระทู้แนะนำ: ติดต่อ database ไม่ได้ครับ

Re: ติดต่อ database ไม่ได้ครับ

โดย teenproza7 » 25/05/2019 10:26 am

mindphp เขียน:กระทู้นี้ ยังมีปัญหา อยู่ไหมครับ
ได้แล้วครับ

โค้ด: เลือกทั้งหมด

@app.route('/show')
def show():


        sql = "SELECT * FROM genpdf ORDER BY fileid,filename,description DESC LIMIT 20"
        sql = sql.decode('utf8')
        cur.execute(sql)
        rows = cur.fetchall()


        return render_template("show.html", rows=rows)
sql = "SELECT * FROM genpdf ORDER BY fileid,filename,description DESC LIMIT 20"

ต้องเปลี่ยนตรงนี้ครับ ให้ตรงกับ คอลัมน์ในฐานข้อมูลครับ

Re: ติดต่อ database ไม่ได้ครับ

โดย mindphp » 25/05/2019 3:34 am

กระทู้นี้ ยังมีปัญหา อยู่ไหมครับ

Re: ติดต่อ database ไม่ได้ครับ

โดย tatiya » 23/05/2019 6:23 pm

ลองดูครับ

โค้ด: เลือกทั้งหมด

#-*- coding=utf-8 -*-
from flask import Flask
from flask import render_template
from flask import request
from flask import redirect
from flask import url_for
import psycopg2 as p


app = Flask(__name__)

con = p.connect(host='127.0.0.1', database='miniproject', user='postgres', password='', port='5432')
cur = con.cursor()


@app.route('/')
def index():
    return render_template('index.html')

@app.route('/', methods=['POST', 'GET'])
def addcode():
    try:


        if request.method == 'POST':

            name = request.form['filename']
            code = request.form['rmlcode']
            des = request.form['description']

            sql = "insert into genpdf (filename, rmlcode, description) values ('%s','%s','%s')" % (name, code, des)
            sql = sql.encode('utf-8')
            try:
                cur.execute(sql)
                print ('เพิ่มข้อมูล เรียบร้อยแล้ว')

            except:
                con.rollback()
                print('เพิ่มข้อมูล ผิดพลาด')

    except:
        print ('database Error')

    return redirect(url_for('index'))



@app.route('/show')
def show():
    try:
        sql = "SELECT * FROM genpdf ORDER BY id DESC LIMIT 10"
        sql = sql.encode('utf-8')
        try:
            cur.execute(sql)
            con.commit()
            print ('ติดต่อฐานข้อมูลได้แล้ว')

        except:
            con.rollback()
            print('ติดต่อฐานข้อมูลไม่ได้')

        result = cur.fetchall()

        for row in result:
            name = row[0]
            des = row[1]
        print result
    except p.DatabaseError:
        print ('Error %s' % p.DatabaseError)

    return render_template("show.html")

app.run(debug=True) 

Re: ติดต่อ database ไม่ได้ครับ

โดย teenproza7 » 23/05/2019 6:08 pm

tatiya เขียน:ขอดู code ในหน้า python ทั้งหมดหน่อยครับ ก็อปมาวางเลย
#-*- coding=utf-8 -*-
from flask import Flask
from flask import render_template
from flask import request
from flask import redirect
from flask import url_for
import psycopg2 as p


app = Flask(__name__)

con = p.connect(host='127.0.0.1', database='miniproject', user='postgres', password='', port='5432')
cur = con.cursor()




@app.route('/')
def index():
return render_template('index.html')

@app.route('/', methods=['POST', 'GET'])
def addcode():
try:


if request.method == 'POST':

name = request.form['filename']
code = request.form['rmlcode']
des = request.form['description']

sql = "insert into genpdf (filename, rmlcode, description) values ('%s','%s','%s')" % (name, code, des)
sql = sql.encode('utf-8')
try:
cur.execute(sql)
con.commit()
print ('เพิ่มข้อมูล เรียบร้อยแล้ว')

except:
con.rollback()
print('เพิ่มข้อมูล ผิดพลาด')

except:
print ('database Error')

return redirect(url_for('index'))



@app.route('/show')
def show():
try:
sql = "SELECT * FROM genpdf ORDER BY id DESC LIMIT 10"
sql = sql.encode('utf-8')
try:
cur.execute(sql)
con.commit()
print ('ติดต่อฐานข้อมูลได้แล้ว')

except:
con.rollback()
print('ติดต่อฐานข้อมูลไม่ได้')

result = cur.fetchall()

for row in result:
name = row[0]
des = row[1]
print result
except p.DatabaseError:
print ('Error %s' % p.DatabaseError)

return render_template("show.html")

app.run(debug=True)

Re: ติดต่อ database ไม่ได้ครับ

โดย tatiya » 23/05/2019 5:38 pm

ขอดู code ในหน้า python ทั้งหมดหน่อยครับ ก็อปมาวางเลย

Re: ติดต่อ database ไม่ได้ครับ

โดย teenproza7 » 23/05/2019 5:34 pm

tatiya เขียน:ลองปริ้น ทุกบรรทัดดูครับว่ามันผิดที่บรรทัดไหน ผมแนะนำว่าตัว คอนเนกน่าจะเอามาไว้เป็นตัวแปร global นะครับ เวลาเรียกใช้ในเมตรอดอื่นจะได้ ไม่ต้องเขียน connect บ่อย เวลาใช้ก็แบบนี้ได้เลย

โค้ด: เลือกทั้งหมด

sql = "SELECT * FROM genpdf ORDER BY id DESC LIMIT 10"
sql = sql.encode('utf-8')
cur.execute(sql)
rows = cur.fetchall()
ว่าแต่ตัวแปร rows ได้ค่าอะไรมาครับลองปริ้นดูหรือยังครับ มันเป็นตัวแปร list หรือ dict ลอง

ปริ้นแล้วได้แบบนี้ครับ
รูปภาพ

Re: ติดต่อ database ไม่ได้ครับ

โดย tatiya » 23/05/2019 4:50 pm

ลองปริ้น ทุกบรรทัดดูครับว่ามันผิดที่บรรทัดไหน ผมแนะนำว่าตัว คอนเนกน่าจะเอามาไว้เป็นตัวแปร global นะครับ เวลาเรียกใช้ในเมตรอดอื่นจะได้ ไม่ต้องเขียน connect บ่อย เวลาใช้ก็แบบนี้ได้เลย

โค้ด: เลือกทั้งหมด

sql = "SELECT * FROM genpdf ORDER BY id DESC LIMIT 10"
sql = sql.encode('utf-8')
cur.execute(sql)
rows = cur.fetchall()
ว่าแต่ตัวแปร rows ได้ค่าอะไรมาครับลองปริ้นดูหรือยังครับ มันเป็นตัวแปร list หรือ dict ลอง

ติดต่อ database ไม่ได้ครับ

โดย teenproza7 » 23/05/2019 4:41 pm

ผมติดต่อ database ไม่ได้ครับ ดังภาพ

รูปภาพ

แต่พอไปดูหน้า show ตารางมาแล้วแต่ข้อมูลยังไม่มา

รูปภาพ



code

โค้ด: เลือกทั้งหมด

@app.route('/show')
def show():
    try:
        con = p.connect(host='127.0.0.1', database='miniproject', user='postgres', password='', port='5432')
        cur = con.cursor()
        sql = "SELECT * FROM genpdf ORDER BY id DESC LIMIT 10"
        sql = sql.encode('utf-8')
        cur.execute(sql)
        rows = cur.fetchall()
        for row in rows:
            name = row[0]
            des = row[1]

    except p.DatabaseError:
             print ('Error %s' % p.DatabaseError)

    return render_template("show.html")
html

โค้ด: เลือกทั้งหมด

<meta charset="UTF-8">

<!doctype html>
<html>
<head>
    <meta charset="UTF-8">
    <title>แสดงข้อมูล</title>
</head>
   <body>
      <table border="1" 1cellspacing="5" width="80%" height="5" align="center">
            <a href = "/">กลับหน้าหลัก</a>
         <thead>
            <td align="center">ID</td>
            <td align="center">ชื่อไฟล์</td>
            <td align="center">คำอธิบาย</td>

            <td colspan="2" align="center" width="10%">เครื่องมือ</td>

         </thead>
             {% for row in rows %}
            <tr>

               <td>{{ row[0] }}</td>
               <td>{{ row[1] }}</td>
               <td>{{ row[2] }}</td>

               <td>  <form action="/iddel/{{ row[0] }}" method="post"> <input type="submit" value="ลบข้อมูล" /> </form></td>
                <td><form action="/enteredit/{{ row[0] }}" method="post"> <input type="submit" value="แก้ไข" /> </form></td>

            </tr>
         {% endfor %}
      </table>



   </body>
</html>

ข้างบน