用python flask搭建一个网站[三]——表单

本文介绍了如何在Python Flask应用中处理用户交互,特别是通过HTML表单接收用户信息。文章详细讲述了两种方法:一是利用flask-wtf库在服务器端创建表单;二是直接在HTML中定义表单,服务器通过`request.form`获取数据。作者在实践过程中遇到了500错误,并最终解决了问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

与用户互动是网页的一个基本功能。而互动的方式基本就是接受用户信息并进行相应的反馈。

表单就是最基本的接受用户信息的方式。


我先参考了《Flask Web Development》中对于Form的介绍。

它引入了一个flask-wtf的package(安装命令pip install flask-wtf)。

在代码中加入

from flask.ext.wtf import Form
from wtforms import StringField, SubmitField
from wtforms.validators import Required

class NameForm(Form):
    name = StringField('What is your name?', validators=[Required()])
    submit = SubmitField('Submit')

然后修改处理函数

@app.route('/', methods=['GET', 
### 使用PythonFlask框架构建API后端服务 为了创建基于Flask的应用程序并定义路由,可以按照如下方式操作。首先,在项目目录下创建名为`hello.py`的文件,并向其中添加必要的导入语句以及应用实例化部分: ```python from flask import Flask, jsonify, request app = Flask(__name__) ``` 接着,通过装饰器来设置不同的HTTP请求路径及其对应的处理函数[^1]。 对于RESTful风格的API开发而言,通常会涉及到GET、POST等方法的支持。下面是一个简单的例子展示如何实现这些功能: #### 定义资源类别的基本CRUD操作 ##### 获取数据列表 (GET) 当客户端发送获取特定集合内所有条目的请求时,服务器应当返回相应的JSON对象数组表示该集合中的成员信息。 ```python @app.route('/api/items', methods=['GET']) def get_items(): items = [{"id": 1, "value": "Item One"}, {"id": 2, "value": "Item Two"}] return jsonify(items), 200 ``` ##### 创建新记录 (POST) 允许外部提交新的实体到指定位置;这里假设接收到的数据是以表单形式编码并通过主体传递过来。 ```python @app.route('/api/item/new', methods=['POST']) def add_item(): data = request.form.to_dict() new_id = len(data)+1 # 这里仅作为示例逻辑简化处理 item = {'id':new_id,'value':data['value']} # 假设有一个全局变量存储items用于模拟数据库行为 global items items.append(item) return jsonify({"message":"Added successfully","item":item}), 201 ``` 上述代码片段展示了两个基础接口的设计思路——读取现有项列表与新增单项。实际生产环境中还需要考虑更多细节如输入验证、异常捕获机制等等。 最后一步就是运行这个应用程序了。确保安装好所需的依赖包之后可以在命令行工具里面键入以下指令启动内置Web Server: ```bash export FLASK_APP=hello.py flask run ``` 这将会监听本地地址上的默认端口(通常是5000),从而使得其他设备可以通过网络访问部署在此处的服务[^2]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值