我试图使一个应用程序,用户把的在一对夫妇的输入,我需要的输入去到我的数据库和我的其他页面,这是结果,这将显示它我已经不在哪里它发送到其他页面我有一个问题试图发送数据到我的数据库,我希望它发送电话名和序列号到数据库只.
下面是我的HTML代码:
<!DOCTYPE html>
<html lang="en">
<head>
<link rel="stylesheet" href="/static/css/main.css">
<link rel="stylesheet" href="{{ url_for('static',filename='css/main.css') }}">
<script type="text/javascript" src="{{url_for('static', filename='script/result.js')}}"></script>
<title>Fen</title>
</head>
<body>
<section>
<div class="form-box">
<div class="form-value">
<form method="GET" action="result.html">
<h2>Add Phone</h2>
<div class="inputbox">
<ion-icon name="mail-outline"></ion-icon>
<input name="Person Name" id="Name" type="text">
<label for="">Name</label>
</div>
<div class="inputbox">
<ion-icon name="mail-outline"></ion-icon>
<input name="Phone Name" id="phone_name" type="text">
<label for="">Phone Name</label>
</div>
<div class="inputbox">
<ion-icon name="lock-closed-outline"></ion-icon>
<input name="Serial Number" type="text" id="sr" required>
<label for="">serial number</label>
</div>
<div class="inputbox">
<ion-icon name="lock-closed-outline"></ion-icon>
<input name="E-Mail" type="email" id="em" required>
<label for="">E-mail</label>
</div>
<div class="inputbox">
<ion-icon name="lock-closed-outline"></ion-icon>
<input name="Phone Number" type="text" id="pn" required>
<label for="">Phone Number</label>
</div>
<button id="log" type="submit">Add Phone</button>
</form>
</div>
</div>
</section>
<script type="module" src="https://unpkg.com/ionicons@5.5.2/dist/ionicons/ionicons.esm.js"></script>
<script nomodule src="https://unpkg.com/ionicons@5.5.2/dist/ionicons/ionicons.js"></script>
<script>
window.addEventListener('load', () => {
const parms = (new URL(document.location)).searchParams;
const username = parms.get('Person Name')
const PhoneName = parms.get('Phone Name')
const SerialNumber = parms.get('Serial Number')
const Email = parms.get('E-Mail')
const PhoneNumber = parms.get('Phone Number')
document.getElementById('name').innerHTML = username
document.getElementById('result-name').innerHTML = PhoneName
document.getElementById('result-surname').innerHTML = SerialNumber
document.getElementById('result-Email').innerHTML = Email
document.getElementById('result-number').innerHTML = PhoneNumber
})
console.log('welcome')
</script>
</body>
</html>
下面是我的python/flask代码:
from flask import *
import sqlite3
app = Flask(__name__)
@app.route('/')
def main() :
return render_template('/Phonebook.html')
@app.route('/', methods = ['POST'])
def phonebook() :
name = request.form['name']
phonenumber = request.form['number']
connection = sqlite3.connect('phonebook2.db')
cursor = connection.cursor()
query1 = "INSERT INTO phonebook2 VALUES ({n},{sn})".format(n=name,sn=phonenumber)
cursor.execute(query1)
connection.commit()
@app.route('/result',methods = ['GET'])
def result ():
try:
if request.method == "GET":
name = request.args.get('name')
connection = sqlite3.connect('phonebook2.db')
cursor = connection.cursor()
query2 = "SELECT number from phonebook2 WHERE Name = {n}".format(n=name)
result = cursor.execute(query2)
result = result.fetchall()[0][0]
return render_template('result.html', phonenumber = result)
except:
return render_template('result.html', phonenumber = "")
if __name__ == '__main__':
app.run(debug=True)
我尝试了一些东西,但它没有工作,而且这是我第一次使用flask和sqlite3,我知道一些关于他们的基础知识
感谢您抽出时间查看我的代码
1条答案
按热度按时间nwo49xxi1#
我很感激你为学习这一点所做的努力和你尝试的解决方案。它仍然需要一些改进。
要改变的事
phonebook2.db
中创建一个新表来存储信息。POST
而不是GET
,以在所需的路由上到达表单提交。request.form['name']
如果您希望像这样读取提交的表单数据,则输入元素应该像<input name="name" id="name" type="text">
这样。输入标记字段名称应与您尝试获取的密钥匹配。查看更新的代码
HTML
app.py
参考文献
快乐学习:)