我正在尝试创建一个注册程序,客人可以注册,他们的inf将保存在数据库中。你知道吗
我已经创建了我的表单和数据库。 唯一让我纠结的是将用户输入从表单发送到数据库。你知道吗
我的HTML代码:
{% block body %}
<form action="{{ url_for('my_form') }}" method="POST">
<div class="container">
<h1>Gasten registratie</h1>
<p>Vul dit formulier in om te registreren</p>
<hr>
<label for="First-Name"><b>Voornaam</b></label>
<input type="text" id="First-Name" placeholder="Vul hier uw voornaam in" name="Voornaam" required>
<label for="Last-Name"><b>Achternaam</b></label>
<input type="text" id="Last-Name" placeholder="Vul hier uw achternaam in" name="Achternaam" required>
<label for="Company-name"><b>Bedrijfsnaam</b></label>
<input type="text" id="Company-name" placeholder="Vul hier uw bedrijfsnaam in" name="Bedrijfsnaam" required>
<label for="Date"><b>Datum</b></label>
<input type="date" id="Date" placeholder="Selecteer de Datum" name="Datum" required />
<hr>
<p>In het kader van onze ISAE certificering registreren wij uw gegevens.</p>
<p>Wij verwerken uw gegevens volgends de regels van het AVG.</p>
<button type="submit" class="registerbtn">Registreren</button>
</div>
</form>
{% endblock %}
我的Python代码:
from flask import Flask, render_template, url_for, request, redirect
from datetime import datetime
import sqlite3
from sqlite3 import Error
app = Flask(__name__)
# hier maak ik de db aan en een connectie
def create_connection(db_file):
connection = None;
try:
conn = sqlite3.connect(db_file)
print(sqlite3.version)
except Error as e:
print(e)
return conn
# hier roep ik de functie voor de db aan en maak ik een db file "gast.db"
if __name__ == '__main__':
create_connection("gast.db")
# hier maak ik de table aan voor de db (moet ik nog aanpassen voor sqlite3)
def create_table(conn, create_table_sql):
try:
c = conn.cursor()
c.execute(create_table_sql)
except Error as e:
print(e)
def main():
database = r"gast.db"
sql_create_guests_table = """ CREATE TABLE IF NOT EXISTS guests (
id integer PRIMARY KEY,
voor_naam text NOT NULL,
achter_naam text NOT NULL,
bedrijfs_naam text NOT NULL,
datum date NOT NULL
); """
conn = create_connection(database)
if conn is not None:
# maak gast table
create_table(conn, sql_create_guests_table)
else:
print("Error! cannot create the database connection.")
if __name__ == '__main__':
main()
# hier zorg ik ervoor dat
@app.route('/')
def index():
return render_template("index.html")
# hier zorg ik ervoor dat de input uit het formulier naar de db gaat
@app.route('/my_form', methods=['POST'])
def my_form():
if request.method == 'POST':
guest_vnaam = request.form['Voornaam']
guest_anaam = request.form['Achternaam']
guest_cnaam = request.form['Bedrijfsnaam']
guest_datum = request.form['Datum']
safe_vnaam = guests(voor_naam=guest_vnaam)
safe_anaam = guests(achter_naam=guest_anaam)
safe_cnaam = guests(bedrijfs_naam=guest_cnaam)
safe_datum = guests(datum=guest_datum)
try:
db.session.add(safe_vnaam)
db.session.add(safe_anaam)
db.session.add(safe_cnaam)
db.session.add(safe_datum)
db.session.commit()
return redirect('/')
except:
return 'Er ging iets fout met het opslaan van uw gegevens'
else:
return render_template('index.html')
# hier run ik de app
if __name__ == '__main__':
app.run(debug=True)
太好了!
提前谢谢!你知道吗谨致问候, 罗尼
试着做
guest_vnaam = request.form.get('Voornaam')
而不是guest_vnaam = request.form['Voornaam']
。你知道吗c = conn.cursor()
在第一个if语句下面添加该语句。您将需要它来保存数据库中的数据。你知道吗这段代码会保存在你的数据库里
因此,您的代码如下所示:
我希望这能帮助你:)
还有一个提示,节目一定要用英语而不是荷兰语:p
相关问题 更多 >
编程相关推荐