สอบถามครับเรียกใช้ curl เจอ Error : <class 'psycopg2.DatabaseError'>

แนะนำ สอบถาม ภาษา C สำหรับผู้เริ่มต้น ภาษา Java ภาษา Python

Moderator: mindphp, ผู้ดูแลกระดาน

newmae
PHP VIP Members
PHP VIP Members
โพสต์: 1002
ลงทะเบียนเมื่อ: 07/05/2024 9:11 am

สอบถามครับเรียกใช้ curl เจอ Error : <class 'psycopg2.DatabaseError'>

โพสต์ที่ยังไม่ได้อ่าน โดย newmae »

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

curl -u user:password http://127.0.0.1:5005/gentokenuser
จากการเรียกใช้คำสั่งข้างต้น เมื่อทำการรันไฟล์หลักบน Python2 สามารถทำงานได้ปกติ หากแต่ว่าพอไปรันบน Python3 ไม่สามารถทำงานได้ เจอ error อย่างนี้ครับ
Error : <class 'psycopg2.DatabaseError'>
ข้อมูลที่ Debug ไว้ในไฟล์ log บันทึกไว้

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

2024-05-30 15:21:43,667:DEBUG:http://127.0.0.1:5005 "POST /auth HTTP/1.1" 404 207
2024-05-30 15:21:43,669:INFO:127.0.0.1 - - [30/May/2024 15:21:43] "GET /gentokenuser HTTP/1.1" 200 -
อยากทราบวิธีการตรวจสอบและแก้ไขต่อไป หรือแนวทางการศึกษาเพิ่มเติม เพื่อนำมาแก้ไขปัญหานี้ครับ
ขอบคุณครับ
ภาพประจำตัวสมาชิก
mindphp
ผู้ดูแลระบบ MindPHP
ผู้ดูแลระบบ MindPHP
โพสต์: 48019
ลงทะเบียนเมื่อ: 22/09/2008 6:18 pm
ติดต่อ:

Re: สอบถามครับเรียกใช้ curl เจอ Error : <class 'psycopg2.DatabaseError'>

โพสต์ที่ยังไม่ได้อ่าน โดย mindphp »

gentokenuser เขียนการเชื่อมต่อไว้ยังไง
ลองเช็คโค้ดดูว่า วิธีการเชื่อมต่อฐานข้อมูล ใช้รูปแบบไหน

จากที่เคยแก้ปัญหาในกระทู้นี้
viewtopic.php?p=373901#p373901

สำหรับ Pyhton3 ได้ลองอัพเกรด psycopg2 ไปหรือยัง

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

pip3 install --upgrade psycopg2
ติดตาม VDO: http://www.youtube.com/c/MindphpVideoman
ติดตาม FB: https://www.facebook.com/pages/MindphpC ... 9517401606
หมวดแชร์ความรู้: https://www.mindphp.com/forums/viewforum.php?f=29
รับอบรม และพัฒนาระบบ: https://www.mindphp.com/forums/viewtopic.php?f=6&t=2042
ภาพประจำตัวสมาชิก
mindphp
ผู้ดูแลระบบ MindPHP
ผู้ดูแลระบบ MindPHP
โพสต์: 48019
ลงทะเบียนเมื่อ: 22/09/2008 6:18 pm
ติดต่อ:

Re: สอบถามครับเรียกใช้ curl เจอ Error : <class 'psycopg2.DatabaseError'>

โพสต์ที่ยังไม่ได้อ่าน โดย mindphp »

ลองเขียนโค้ดเชื่อมต่อง่ายๆ และ รันด้วย command ดูก่อน
ถ้ารันได้ ค่อยลองใช้ โปรแกรมอื่นมาเรียกให้ทำงานแบบโค้ดตัวอย่างที่ยกมา
ติดตาม VDO: http://www.youtube.com/c/MindphpVideoman
ติดตาม FB: https://www.facebook.com/pages/MindphpC ... 9517401606
หมวดแชร์ความรู้: https://www.mindphp.com/forums/viewforum.php?f=29
รับอบรม และพัฒนาระบบ: https://www.mindphp.com/forums/viewtopic.php?f=6&t=2042
newmae
PHP VIP Members
PHP VIP Members
โพสต์: 1002
ลงทะเบียนเมื่อ: 07/05/2024 9:11 am

Re: สอบถามครับเรียกใช้ curl เจอ Error : <class 'psycopg2.DatabaseError'>

โพสต์ที่ยังไม่ได้อ่าน โดย newmae »

mindphp เขียน: 01/06/2024 11:12 am ลองเขียนโค้ดเชื่อมต่อง่ายๆ และ รันด้วย command ดูก่อน
ถ้ารันได้ ค่อยลองใช้ โปรแกรมอื่นมาเรียกให้ทำงานแบบโค้ดตัวอย่างที่ยกมา
ได้รันโค้ดเชื่อมต่อง่ายๆ ได้สำเร็จแล้ว

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

@app.route("/login", methods=["POST"])
def login():
    username = request.json.get("username", None)
    password = request.json.get("password", None)
    if username != "test" or password != "test":
        return jsonify({"msg": "Bad username or password"}), 401

    access_token = create_access_token(identity=username)
    return jsonify(access_token=access_token)
สามารถ gen ออกมาสำเร็จ

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

curl -X POST http://127.0.0.1:5000/login -H "Content-Type: application/json" -d "{\"username\": \"test\", \"password\": \"test\"}"
ผลที่ได้

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

{"access_token":"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJmcmVzaCI6ZmFsc2UsImlhdCI6MTcxNzk5NDU0NiwianRpIjoiNzk5YzcyMDItYmI3OC00NmI0LTllYmItZTJlZTdlODQzNjUzIiwidHlwZSI6ImFjY2VzcyIsInN1YiI6InRlc3QiLCJuYmYiOjE3MTc5OTQ1NDYsImNzcmYiOiJiNDA2YWE5ZS1kZDI5LTQxMGYtYmVhNS0zNjRhNmI5ZTI2OGMiLCJleHAiOjE3MTc5OTU0NDZ9.gK0qzZmn74C7xEu7WmZ-E5QbQsKZh3_KPC1NKV8t0ic"}
หากแต่เมื่อให้ลองประยุกต์กับตัวงาน ไม่สำเร็จ error เหมือนเดิม
ในส่วนที่สันนิฐานมีผล
ส่วนแรกจะเป็นตอนทำงานบน python2

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

auth = HTTPBasicAuth()

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

def authenticate(username, password):
    user = username_table.get(username, None)
    if user and compare_digest(user.password.encode('utf-8'), password.encode('utf-8')) and user.active == True:
        return user

def identity(payload):
    user_id = payload['identity']
    return userid_table.get(user_id, None)

jwt = JWT(app, authenticate, identity)
พอตอนรันบน python ต้องเรียกใช้จาก

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

from flask_jwt_extended import JWTManager as JWT

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

jwt = JWT(app)
โค้ดรู้ดที่เรียกใช้ตอนเรียกทำงานในส่วนนี้ทำงานสำเร็จบน python2 แต่ไม่สำเร็จ บนไพทอน 3

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

@app.route('/gentokenuser')
@auth.login_required
def gentokenuser():
    cur = con.cursor()
    sql = """SELECT * FROM "user" WHERE username = '%s';""" % auth.username()
    sql = sql.encode('utf-8')
    try:
        cur.execute(sql)
        resufts = cur.fetchone()
        link_auth = 'http://' + ip + ':' + port + '/auth'
        headers = {
            'Content-Type': 'application/json',
        }
        data = '{"username": "%s","password": "%s" }' % (resufts[3], resufts[4])
        response = requests.post(link_auth, headers=headers, data=data)
        token_user = response.json()['access_token']
        sql_update = """UPDATE public."user" SET  token='%s' WHERE id =%d;""" % (token_user, int(resufts[0]))
        sql = sql_update.encode('utf-8')
        cur.execute(sql)
        con.commit()
    except:
        return 'Error : %s' % p.DatabaseError

    return jsonify({'access_token': token_user})
newmae
PHP VIP Members
PHP VIP Members
โพสต์: 1002
ลงทะเบียนเมื่อ: 07/05/2024 9:11 am

Re: สอบถามครับเรียกใช้ curl เจอ Error : <class 'psycopg2.DatabaseError'>

โพสต์ที่ยังไม่ได้อ่าน โดย newmae »

จากทดลอง debug แล้วเหมือนโค้ดในส่วนนี้ จะไม่ทำงาน

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

response = requests.post(link_auth, headers=headers, data=data)
        token_user = response.json()['access_token']
ซึ่งได้เปลี่ยนให้มาเรียกใช้แบบนี้

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

access_token = create_access_token(identity=username)
ก็ไม่ได้ผล
ภาพประจำตัวสมาชิก
mindphp
ผู้ดูแลระบบ MindPHP
ผู้ดูแลระบบ MindPHP
โพสต์: 48019
ลงทะเบียนเมื่อ: 22/09/2008 6:18 pm
ติดต่อ:

Re: สอบถามครับเรียกใช้ curl เจอ Error : <class 'psycopg2.DatabaseError'>

โพสต์ที่ยังไม่ได้อ่าน โดย mindphp »

Debug ตรงไหน และ ได้ค่าอะไรมาครับ
ติดตาม VDO: http://www.youtube.com/c/MindphpVideoman
ติดตาม FB: https://www.facebook.com/pages/MindphpC ... 9517401606
หมวดแชร์ความรู้: https://www.mindphp.com/forums/viewforum.php?f=29
รับอบรม และพัฒนาระบบ: https://www.mindphp.com/forums/viewtopic.php?f=6&t=2042
ภาพประจำตัวสมาชิก
mindphp
ผู้ดูแลระบบ MindPHP
ผู้ดูแลระบบ MindPHP
โพสต์: 48019
ลงทะเบียนเมื่อ: 22/09/2008 6:18 pm
ติดต่อ:

Re: สอบถามครับเรียกใช้ curl เจอ Error : <class 'psycopg2.DatabaseError'>

โพสต์ที่ยังไม่ได้อ่าน โดย mindphp »

auth = HTTPBasicAuth()
ส่วนส่วนหนึ่งของ โมดูล requests ใช้งานได้ทั้ง pyhton2 และ python3
ติดตาม VDO: http://www.youtube.com/c/MindphpVideoman
ติดตาม FB: https://www.facebook.com/pages/MindphpC ... 9517401606
หมวดแชร์ความรู้: https://www.mindphp.com/forums/viewforum.php?f=29
รับอบรม และพัฒนาระบบ: https://www.mindphp.com/forums/viewtopic.php?f=6&t=2042
newmae
PHP VIP Members
PHP VIP Members
โพสต์: 1002
ลงทะเบียนเมื่อ: 07/05/2024 9:11 am

Re: สอบถามครับเรียกใช้ curl เจอ Error : <class 'psycopg2.DatabaseError'>

โพสต์ที่ยังไม่ได้อ่าน โดย newmae »

ครับบน python2

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

requests.post(link_auth, headers=headers, data=data)
มันจะสำเร็จ
แต่หากบน python3 ไม่สำเร็จ
  1. วิธีแก้ไข จะต้องสร้าง endpoint สำหรับ ลิ้งค์นั้นขึ้นมา จึงสำเร็จครับ
newmae
PHP VIP Members
PHP VIP Members
โพสต์: 1002
ลงทะเบียนเมื่อ: 07/05/2024 9:11 am

Re: สอบถามครับเรียกใช้ curl เจอ Error : <class 'psycopg2.DatabaseError'>

โพสต์ที่ยังไม่ได้อ่าน โดย newmae »

วิธีและการแก้ไขเพิ่มเติม ตามที่กระทู้นี้ครับ
viewtopic.php?p=378820#p378820
ภาพประจำตัวสมาชิก
mindphp
ผู้ดูแลระบบ MindPHP
ผู้ดูแลระบบ MindPHP
โพสต์: 48019
ลงทะเบียนเมื่อ: 22/09/2008 6:18 pm
ติดต่อ:

Re: สอบถามครับเรียกใช้ curl เจอ Error : <class 'psycopg2.DatabaseError'>

โพสต์ที่ยังไม่ได้อ่าน โดย mindphp »

mindphp เขียน: 11/06/2024 10:56 pm Debug ตรงไหน และ ได้ค่าอะไรมาครับ
mindphp เขียน: 12/06/2024 10:20 pm auth = HTTPBasicAuth()
ส่วนส่วนหนึ่งของ โมดูล requests ใช้งานได้ทั้ง pyhton2 และ python3
มีสองประเด็น

และ ไม่ได้พูดถึง endpoint ใหม่ ให้ยืนยันว่า requests HTTPBasicAuth สามารถใช้ได้ทั้งสองเวอร์ชั่น

แล้ว สร้างใหม่ endpoint ทำมายังไง ได้ใช้ HTTPBasicAuth ของ requests หรือเปล่า
ทำอะไรไปถ้า มาสอบถามควรลงรายละเอียดมาด้วยครับ
ติดตาม VDO: http://www.youtube.com/c/MindphpVideoman
ติดตาม FB: https://www.facebook.com/pages/MindphpC ... 9517401606
หมวดแชร์ความรู้: https://www.mindphp.com/forums/viewforum.php?f=29
รับอบรม และพัฒนาระบบ: https://www.mindphp.com/forums/viewtopic.php?f=6&t=2042
ตอบกลับโพส
  • Similar Topics
    ตอบกลับ
    แสดง
    โพสต์ล่าสุด

ผู้ใช้งานขณะนี้

สมาชิกกำลังดูบอร์ดนี้: ไม่มีสมาชิกใหม่ และบุคลทั่วไป 1