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

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

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

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

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

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

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

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

แล้ว สร้างใหม่ endpoint ทำมายังไง ได้ใช้ HTTPBasicAuth ของ requests หรือเปล่า
ทำอะไรไปถ้า มาสอบถามควรลงรายละเอียดมาด้วยครับ
  1. endpoint ของ '/auth' สร้างมาเพื่อรองรับการเรียก
    โค้ดในส่วนของ endpoint

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

    @app.route('/auth', methods=['POST'])
    def auth_endpoint():
        data = request.json
        username = data.get('username')
        password = data.get('password')
        cur = con.cursor()
        try:
            sql = """SELECT id, password FROM "user" WHERE username = %s"""
            cur.execute(sql, (username,))
            result = cur.fetchone()
    
            if result:
                user_id, db_password = result
                if password == db_password:  
                    access_token = create_access_token(identity={'username': username})
                return jsonify(access_token=access_token), 200
            else:
                return jsonify({"msg": "Invalid credentials"}), 401
        finally:
            cur.close()
    ต่อมาโค้ดในส่วนของที่มีปัญหาในการเรียกใช้งานบน python3

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

    link_auth = 'http://' + ip + ':' + port + '/auth'
    response = requests.post(link_auth, headers=headers, json=data)
    หากแต่ว่า ใน python 2 นั้น ไม่มีการเขียนส่วนนี้ แต่ผลที่ได้จากการ requests.post นั้น

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

    <Response [200]>
    แต่พอเมื่อทำการทำงานบน python3 ซึ่งใช้โค้ดชุดเดียวกัน ต่างกันไลบารี่เพื่อให้ทำงานสอดคล้องกับเวอร์ชั่นของ python

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

    404
    "error": "HTTP Request failed"
    จึงสร้าง endpoint ให้เรียกใช้ครับ เพราะไล่โค้ดแล้วไม่มีส่วนไหนเขียนไว้เลยครับ
    ไหนส่วนของ python2 นั้นที่สำเร็จยังหาสาเหตุไม่เจอ ว่าไปเรียกตรงไหนกันแน่ครับ
  2. ครับได้ใช้ HTTPBasicAuth ของ requests ประกอบการใช้งานในการ ดึง password เพื่อยืนตัวตน

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

    @auth.get_password
    def get_pw(username):
    เพื่อยืนยันตัวตน
    ซึ่งได้ใช้ทั้งสองเลยครับ
ตอบกลับโพส
  • Similar Topics
    ตอบกลับ
    แสดง
    โพสต์ล่าสุด

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

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