【问题标题】:add users from database to json file将用户从数据库添加到 json 文件
【发布时间】:2024-05-20 17:30:02
【问题描述】:

我有一个包含用户的数据库。这是structure

我的问题是:如何创建json文件,这样我就可以看到json-format中的所有用户了

{
    "id": "47",
    "firstname": "user",
    "lastname": "user",
    "email": "uuser@example.com",
    "born_date": "17.06.2020",
    "password": "123123",
    "phone_number": "123123123",
    "description": "firstdescription"
},

所以,我需要将现有用户从 db 添加到 json-format 到新创建的 json file 并将每个新注册的用户添加到我的 json 文件中

User registration code:

@app.route('/register', methods=['GET', 'POST'])
def register():
    if request.method == 'POST':
        firstname = request.form['firstname']
        lastname = request.form['lastname']
        email = request.form['email']
        password = request.form['password']
        phone_number = request.form['number']
        born_date = request.form['date']
        description = request.form['description']

        # password = hashlib.md5(password.encode())
        # password = password.hexdigest()

        cur = mysql.connection.cursor()
        cur.execute('SELECT * FROM users.data WHERE email = %s AND password = %s',
                    (email, password))

        account = cur.fetchone() # get all in account variable

        if account:
            return render_template('exist.html')
        else:
            session['email'] = email
            session['firstname'] = firstname
            cur.execute('INSERT INTO users.data(firstname, lastname, email, born_date, password, phone_number, description) VALUES (%s, %s, %s, %s, %s, %s, %s)',
                                                (firstname, lastname, email, born_date, password, phone_number, description))
            mysql.connection.commit()
            cur.close()
            return redirect(url_for('profile'))

    return render_template('register.html')

【问题讨论】:

  • 看来你已经做了,这里有什么问题?
  • @Sushanth,我手动编写的。我需要为所有用户这样做。
  • @Sushanth,你能帮我解决这个问题吗

标签: python json python-3.x flask


【解决方案1】:

我是这样解决的:

@app.route('/register', methods=['GET', 'POST'])
def register():
    if request.method == 'POST':
        firstname = request.form['firstname']
        lastname = request.form['lastname']
        email = request.form['email']
        password = request.form['password']
        phone_number = request.form['number']
        born_date = request.form['date']
        description = request.form['description']

        # password = hashlib.md5(password.encode())
        # password = password.hexdigest()

        cur = mysql.connection.cursor()
        cur.execute('SELECT * FROM users.data WHERE email = %s AND password = %s',
                    (email, password))

        account = cur.fetchone() # get all in account variable

        if account:
            return render_template('exist.html')
        else:
            session['email'] = email
            session['firstname'] = firstname
            cur.execute('INSERT INTO users.data(firstname, lastname, email, born_date, password, phone_number, description) VALUES (%s, %s, %s, %s, %s, %s, %s)',
                                                (firstname, lastname, email, born_date, password, phone_number, description))
            mysql.connection.commit()
            cur.close()

            cur = mysql.connection.cursor()
            cur.execute("SELECT id, firstname, lastname, email, born_date, password, phone_number FROM users.data WHERE description = 'doctor'") # тут добавить выбор id, born_date, password, phone_number
            account = cur.fetchall()
            description = account
            cur.close()

            cur = mysql.connection.cursor()
            cur.execute("SELECT * FROM users.data")
            account = cur.fetchall()
            description = account
            content = {}
            content = description
            with open('data_json.json', 'w') as json_file:
                json.dump(content, json_file, indent=4)

            return render_template('profile.html', email=session['email'], firstname=session['firstname'], description=description)
return render_template('register.html')

【讨论】:

    最近更新 更多