实现页面的数据存入数据库中:
<html>
<head>
<title>User Information and Deposit</title>
</head>
<body>
<h1>User Information and Deposit</h1>
<form method="post" action="/">
<label for="name">姓名:</label>
<input type="text" id="name" name="name" required><br><br>
<label for="phone">电话:</label>
<input type="tel" id="phone" name="phone" required><br><br>
<input type="submit" value="Submit">
</form>
</body>
</html>
from flask import Flask, render_template, request
from flask_sqlalchemy import SQLAlchemy
app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = 'mysql+pymysql://root:123456@192.168.10.109:3306/lifa'
app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False
db = SQLAlchemy(app)
class sys_user_info(db.Model):
id = db.Column(db.Integer, primary_key=True)
username = db.Column(db.String(50), nullable=False)
linkphone = db.Column(db.String(15), nullable=False)
@app.route('/', methods=['GET', 'POST'])
def index():
if request.method == 'POST':
name = request.form.get('name')
phone = request.form.get('phone')
new_user = sys_user_info(username=name, linkphone=phone)
db.session.add(new_user)
db.session.commit()
return "Information successfully added to database!"
return render_template('index.html')
需要注意:
1.数据库中的id要SQL 来将字段 “id” 设置为自增且为主键
ALTER TABLE sys_user_info
MODIFY id INT AUTO_INCREMENT PRIMARY KEY;
2.中action="/"要和@app.route(‘/’, methods=[‘GET’, ‘POST’])中的/保持一致
3.在数据库中创建 sys_user_info表,在python中也要创建sys_user_info的实例
class sys_user_info(db.Model):
id = db.Column(db.Integer, primary_key=True)
username = db.Column(db.String(50), nullable=False)
linkphone = db.Column(db.String(15), nullable=False)
这段代码是用来定义一个数据模型(Model)的类sys_user_info
,其作用是将数据库表和 Python 对象映射起来,方便在代码中操作数据库
通过定义这个sys_user_info`类,我们可以在代码中通过实例化这个类来创建新的用户,并将用户数据保存到数据库中。这个类提供了一种对象关系映射(ORM)的方式,让我们可以通过面向对象的方式操作数据库,而不需要直接编写 SQL 语句。