簡體   English   中英

如何使用 URL 從數據庫中檢索數據

[英]How can I retrieve Data from a database by using the URL

我想在 URL 中鍵入 CallId 並以 Json 格式從我的數據庫中獲取行的信息。 例如鍵入: http://127.0.0.1:5000/caller/?CallId=123456 ,然后獲取 OriginationName 和 OriginationNumber。

我認為我的 for 循環中有一個錯誤。 我將非常感謝任何幫助。 這是我的代碼:

from flask import Flask, render_template, request
from flask_mysqldb import MySQL
import yaml

anrufe = Flask(__name__)

datenbank = yaml.load(open('datenbank.yaml'))
anrufe.config['MYSQL_HOST'] = datenbank['mysql_host']
anrufe.config['MYSQL_USER'] = datenbank['mysql_user']
anrufe.config['MYSQL_PASSWORD'] = datenbank['mysql_password']
anrufe.config['MYSQL_DB'] = datenbank['mysql_db']

mysql = MySQL(anrufe)


@anrufe.route('/', methods=['GET', 'POST'])
def index():
    if request.method == 'POST':
        userDetails = request.form
        CallId = userDetails['CallId']
        OriginationNumber = userDetails['OriginationNumber']
        OriginationName = userDetails['OriginationName']
        cur = mysql.connection.cursor()
        cur.execute("INSERT INTO caller(CallId,OriginationNumber,OriginationName) VALUES(%s, %s, %s)",
                    (CallId, OriginationNumber, OriginationName))
        mysql.connection.commit()
        cur.close()
        return 'Der Anrufer wurde registriert'

    return render_template('index.html')

@anrufe.route('/caller/all')
def caller():
    cur = mysql.connection.cursor()
    resultValue = cur.execute("SELECT * FROM caller")
    if resultValue > 0:
        userDetails = cur.fetchall()
        return render_template('caller.html', userDetails=userDetails)


@anrufe.route('/caller/", methods=['GET'])
def api_caller():
    if 'CallId' in request.args:
        CallId = int(request.args['CallId'])
        print(CallId)
    else:
        return "Error: No CallId field provided. Please specify a CallId."

    results = []

    for caller in datenbank:
        if caller['CallId'] == ['CallId']:
            results.append(caller)

    return jsonify(results)


if __name__ == '__main__':
    anrufe.run(debug=True)

Step1:讓我們通過callerid獲取所有結果:

from flask import jsonify

@anrufe.route('/caller/CallId=<id>', methods = ['GET'])
def api_caller(id):
    cur = mysql.connection.cursor()
    resultValue = cur.execute("SELECT * FROM caller WHERE CallId =  (%s)",(id,))
    if resultValue > 0:
        user_by_id = cur.fetchall()
        return jsonify(user_by_id)
    else:
        return "Called ID does not exist!"

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM