Python Flask - «Проверьте, существует ли имя пользователя в базе данных MySQL» - PullRequest
0 голосов
/ 04 февраля 2019

Я использую приложение Python Flask, которое принимает имя пользователя и пароль.Я хотел проверить, существует ли имя пользователя в базе данных Mysql.Если это так, я хотел бы вернуть «имя пользователя существует» на веб-странице.

ниже указан мой код фляги:

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

app = Flask(__name__)

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

mysql =MySQL(app)

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

    if request.method == 'POST' and request.method=='GET':
        #fetch form data
        userdetails = request.form
        name = userdetails['name']
        email = userdetails['email']
        cur = mysql.connection.cursor()
        new_value= cur.execute("SELECT (name,email) FROM users where name = %s and email=%s",'name','email')
        if new_value> 0:
            return "the username exists"
        else:
            return "SUCCESS!,Successfully entered into the Database"

    return render_template('index.html')

при запуске приложения фляги, мой вебстраница ничего не возвращает.

1 Ответ

0 голосов
/ 04 февраля 2019

хорошо, поэтому я не могу комментировать, так как у меня недостаточно репутации, однако для извлечения данных формы request.method должно быть POST, поскольку именно тогда пользователь нажимает кнопку, чтобы отправить форму.Как сказал Брайан Дрисколл, request.method не может быть одновременно POST и GET, это все равно, что сказать:

if bob.age == 15 and bob.age == 50 

Бобу не может быть одновременно 15 и 50 лет, втаким же образом request.method не может быть POST И GET одновременно.так что вы хотите сделать это

if request.method == 'POST':
        userdetails = request.form
        name = userdetails['name']
        email = userdetails['email']
        cur = mysql.connection.cursor()
        new_value= cur.execute("SELECT (name,email) FROM users where name = %s and email=%s",'name','email')
        if new_value> 0:
            return "the username exists"
        else:
            return "SUCCESS!,Successfully entered into the Database"

Для получения дополнительной информации о POST, GET и других запросах вы можете обратиться к статье здесь

...