- 此问题在此处已有答案**:
Sending data from HTML form to a Python script in Flask(2个答案)
11小时前关门了。
我已经创建了基本的FLASK应用程序来存储学生数据,我试图从HTML表单接收数据,作为应用程序的前端。
但无法从HTML表单接收数据,请任何人推荐建议的方法或代码。
- 我的FLASK应用程序代码**
import os.path
import random
import string
from flask import Flask, request, jsonify, render_template
from flask_sqlalchemy import SQLAlchemy
app = Flask(__name__)
basedir = os.path.abspath(os.path.dirname(__file__))
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///' + os.path.join(basedir, 'students.db')
db = SQLAlchemy(app)
class student(db.Model): #Table Declaration & Schema
id = db.Column(db.Integer, primary_key=True)
FirstName = db.Column(db.String(100), nullable=False)
SecondName = db.Column(db.String(20), nullable=False)
Section = db.Column(db.Text, nullable=False)
@app.route('/students', methods=['POST'])
def create_student():
data = request.get_json()
new_student = student(FirstName=data['FirstName'], SecondName=data['SecondName'], Section=data['Section']
db.session.add(new_student)
db.session.commit()
return request.form
if __name__ == '__main__':
with app.app_context():
db.create_all()
app.run(host='127.0.0.1',port=8000,debug=True)
- 我的HTML表单代码:**
<!DOCTYPE html>
<html>
<head>
<title>Create Student Entry</title>
</head>
<form action="http://127.0.0.1:8000/students/" method="post">
<label for="FirstName">FirstName:</label><br>
<input type="text" id="FirstName" name="FirstName"><br>
<label for="SecondName">SecondName:</label><br>
<input type="text" id="SecondName" name="SecondName"><br>
<label for="Section">Section:</label><br>
<input type="text" id="Section" name="Section"><br>
<input type="submit" value="Submit">
</form>
</html>
2条答案
按热度按时间blmhpbnm1#
在前端代码中,尝试写入
http://127.0.0.1:8000/students
而不是http://127.0.0.1:8000/students/
。末尾的“/”是URL出错的地方,也可能是您没有接收到数据的原因。
gmxoilav2#
将FLASK代码中的值更改为
data = request.form
更新代码以供参考。