Передача данных в базу данных MySQL с помощью flask и jquery из html - PullRequest
0 голосов
/ 08 декабря 2018

Привет, ребята. Я пытаюсь передать информацию и страницу HTML в базу данных MySQL через флешку, но я застрял и запутался

Это мой python - scores.py (соединение с базой данных - conn_db с учетными данными и т. Д.)

import mysql.connector as conn
from flask import (
render_template,
Flask,
jsonify,
request,
abort as ab
)

app = Flask(__name__, template_folder='C:\\Users\\thomp\\PycharmProjects\\com661_1819_team_30\\source\\template\\')

# Credentials here in code
WHO = '*********'
PWD = '********'
DATABASE = '********'


def conn_db():
return conn.connect(user=WHO,
                    password=PWD,
                    host='**********',
                    database=DATABASE
                    )


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



@app.route('/addScore', methods=['POST'])
def add_score():
cnx = conn_db()
cursor = cnx.cursor()
MatchID = request.form['matchID']
Home_Score = request.form['homeScore']
Away_Score = request.form['awayScore']

print("Updating score")
if not request.json:
    ab(400)

insert_score = "INSERT INTO scores (Match_ID, Home_Score, Away_Score) VALUES (%s,%s,%s)"
cursor.execute(insert_score, (MatchID, Home_Score, Away_Score))



if __name__ == '__main__':
app.run(debug=True, host='0.0.0.0')

И вот мой html-файл Scores.html (Опубликовано как изображение)

HTML file HTml

Любая помощь очень ценится, спасибо, ребята

Ответы [ 2 ]

0 голосов
/ 08 декабря 2018

Исходя из того, что вы нам дали, я полагаю, одна из ваших проблем заключается в том, что вы публикуете не содержимое полей ввода, а сам объект DOM.Если вы не уверены в коде JavaScript, всегда полезно попробовать его в консоли разработчика вашего браузера.

Чтобы исправить эту ошибку, просто добавьте val() в функцию отправки, например, var $matchID = $('#matchID').val()

Также я думаю, что вы должны удалить косую черту из параметра хоста вашего AJAX-вызова, потому что вы определили свой маршрут в фляге без него.

Два примечания:

  1. Выдолжен избегать опубликованных данных, чтобы предотвратить атаки SQL Injection .Я полагаю, что используемая вами среда предоставляет эту функцию conn.escape_string() для этой цели.
  2. Предварительное добавление имен переменных со знаком доллара не является обычным явлением в JavaScript.Я думаю, что большинство людей предпочитают CamelCase.Особенно при использовании jQuery добавление дополнительных знаков доллара к переменным может привести к путанице.

PS: Было бы очень полезно, если бы вы опубликовали конкретный вопрос или любую ошибку, с которой вы столкнулись.Кроме того, публикация скриншотов вместо реального кода кажется ненужной и затрудняет отладку ваших проблем.

0 голосов
/ 08 декабря 2018

Я недавно сделал то же самое, поэтому я поделюсь с вами тем, что сделал, чтобы разрешить изменение данных SQL через HTML.

Так же, как и вы, я переобучал информацию со страницы HTML с помощьюФорма запроса

report_name = request.form["report_name"]

, за которой следует

cur.execute("UPDATE table SET report_name=%s", [report_name])
mysql.connection.commit()

Мне нужно было только обновить таблицу, но это можно изменить с помощью Insert Into.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...