鱼C论坛

 找回密码
 立即注册
查看: 1886|回复: 4

[已解决]html前端接受内容

[复制链接]
发表于 2023-4-9 16:10:07 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
主代码如下:
from flask import Flask, render_template,request
app = Flask(__name__)


@app.route("/register")
def register():
    return render_template('info.html')

@app.route("/post_register",methods=['post'])
def post_register():
    print(request.form)
    return"注册成功"

if __name__ == "__main__":
    app.run()

html文件如下:
<head>
</head>
<body>
<h1>欢迎登陆</h1>
<form method="post" action="/post_register">
<div>
    用户名:<input type="text",name='user'/>
    密码:<input  type="password",name="pwd"/>
    性别:<input type="radio" name="gender",value='1'/>男       <input type="radio" name="gender",value='2'/>女
</div>
<input type="submit" value="提交" />
</form>
</body>


终端显示:ImmutableMultiDict([('gender',&#160;'on')])
发现主文件接收的文件不能接收到name和password,而且gender的接受值也不太一样,请问那里出了问题呢?请大佬们指教一下
最佳答案
2023-4-9 16:11:57
问题出在HTML文件的输入标签中,您的输入标签的属性之间使用了逗号,而不是空格。

正确的做法应该是用空格隔开属性。此外,input 标签应该是自闭合的,也就是在标签的末尾添加一个斜杠(/)。

将您的HTML文件修改为以下内容:

<head>
</head>
<body>
<h1>欢迎登陆</h1>
<form method="post" action="/post_register">
<div>
    用户名:<input type="text" name='user'/>
    密码:<input type="password" name="pwd"/>
    性别:<input type="radio" name="gender" value='1'/>男       <input type="radio" name="gender" value='2'/>女
</div>
<input type="submit" value="提交" />
</form>
</body>

这样修改后,您的终端应该能正确显示用户提交的表单信息。例如,如果用户提交了用户名为"user1",密码为"password1",性别为"1"(男),您的终端将显示:
ImmutableMultiDict([('user', 'user1'), ('pwd', 'password1'), ('gender', '1')])
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2023-4-9 16:11:33 | 显示全部楼层
从你提供的代码和信息来看,可能存在以下问题:

HTML中的输入框name属性值设置不正确。在你提供的HTML代码中,每个输入框的name属性后面都存在一个逗号(,),这会导致表单提交时无法正确获取它们的值。你需要将逗号去掉,例如将<input type="text",name='user'/>修改为<input type="text" name='user'/>。

HTML中的表单method属性值设置不正确。在你提供的HTML代码中,表单的method属性被设置为“post”,但请求方式应该是“POST”而不是“post”。你需要将表单的method属性值修改为大写字母的“POST”,例如将<form method="post" action="/post_register">修改为<form method="POST" action="/post_register">。

HTML中的radio按钮的value属性值设置不正确。在你提供的HTML代码中,每个radio按钮的value属性值被设置为字符串“1”或“2”而不是数字1或2。当表单被提交时,这些值将作为字符串类型被发送到服务器,并且您需要在服务器端手动将其转换为数字类型。你需要将value属性值修改为数字类型,例如将<input type="radio" name="gender" value='1'/>男修改为<input type="radio" name="gender" value=1/>男。

当你解决了以上问题后,你可以重新测试你的代码以检查问题是否已解决。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-4-9 16:11:57 | 显示全部楼层    本楼为最佳答案   
问题出在HTML文件的输入标签中,您的输入标签的属性之间使用了逗号,而不是空格。

正确的做法应该是用空格隔开属性。此外,input 标签应该是自闭合的,也就是在标签的末尾添加一个斜杠(/)。

将您的HTML文件修改为以下内容:

<head>
</head>
<body>
<h1>欢迎登陆</h1>
<form method="post" action="/post_register">
<div>
    用户名:<input type="text" name='user'/>
    密码:<input type="password" name="pwd"/>
    性别:<input type="radio" name="gender" value='1'/>男       <input type="radio" name="gender" value='2'/>女
</div>
<input type="submit" value="提交" />
</form>
</body>

这样修改后,您的终端应该能正确显示用户提交的表单信息。例如,如果用户提交了用户名为"user1",密码为"password1",性别为"1"(男),您的终端将显示:
ImmutableMultiDict([('user', 'user1'), ('pwd', 'password1'), ('gender', '1')])
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-4-9 16:13:16 | 显示全部楼层
谢谢大佬,我也发现问题所在了,万分感谢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-4-9 16:52:27 | 显示全部楼层
苏打气泡水 发表于 2023-4-9 16:13
谢谢大佬,我也发现问题所在了,万分感谢

明明我先发的……
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-14 20:46

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表