python-web:flask框架下的html实例——用户注册页面

1、submit实现页面跳转,方法为get

    <h1>用户注册</h1>
    <!--  使用get方式提交,method为post/get,action保存提交到哪里 -->
    <form method = "get"action="/do/reg" >
        用户名:<input type="text" name="uu">
        密码:<input type="password" name="pp">
        <!--submit可以实现页面跳转,当加入form时-->
<!--        <input type = "button" value="button按钮">-->
        <input type = "submit" value="submit按钮">
    </form>
  • 点击submit按钮,会实现跳转
  • 信息会被传入到url中
    image

页面上的数据,想要提交到后台:

  • form标签包裹所要提交的数据标签。
  • form标签中,定义method(提交方式),action(提交地址)
  • form标签中,必须有submit标签
  • 在form中的一些标签:input/select/textarea
    • 一定要写name属性
<input type="text" name="uu">

submit获取数据到后台:

from flask import Flask,render_template,request #头文件
@app.route("/do/reg", methods = ['GET'])
def do_register():
    # 接收用户通过get形式发送过来的数据
    print(request.args)
    # 给用户返回结果,必须有return语句
    return "注册成功"

2、submit实现页面跳转,方法为post

from flask import Flask,render_template,request #头文件
@app.route("/post/reg", methods = ['POST'])
def post_register():
    # 接收用户通过post形式发送过来的数据
    print(request.form)
    # 给用户返回结果,必须有return语句
    return "注册成功"
# action改成post即可
<h1>用户注册</h1>
    <!--  使用get方式提交,method为post/get,action保存提交到哪里 -->
    <form method = "post"action="/post/reg" >
        用户名:<input type="text" name="uu">
        密码:<input type="password" name="pp">
        <!--submit可以实现页面跳转,当加入form时-->
<!--        <input type = "button" value="button按钮">-->
        <input type = "submit" value="submit按钮">
    </form>

image

3、submit提交单选框、复选框、下拉框信息(post)

# 加上value值
# 单选框
<input type="radio" name = "gender" value = "1"> 男
<input type="radio" name = "gender" value = "2"> 女
# 复选框
<input type="checkbox" name="hobby" value = "10"> 篮球
<input type="checkbox" name="hobby" value = "20"> 足球
<input type="checkbox" name="hobby" value = "30"> 乒乓球
# 单选下拉框
<select name ="city">
    <option value="bj">北京</option>
    <option value="tj">天津</option>
</select>
# 可多选下拉框
擅长领域:
<select name ="good" multiple>
    <option value="py">python</option>
    <option value="ja">java</option>
</select>
# 拿到文本框数据
备注:<textarea name="more"></textarea>

- 要想让数据提交到后台,必须定义name属性
- 能提交到后台的数据,必须是用户能输入的数据

4、将用户信息获取出来

@app.route("/post/reg", methods = ['POST'])
def post_register():
    # 接收用户通过post形式发送过来的数据
    user = request.form.get("user")
    pwd = request.form.get("pwd")
    gender = request.form.get("gender")
    # 当有多个答案产生时,使用getlist
    hobby_list = request.form.getlist("hobby")
    city = request.form.get("gender")
    skill_list = request.form.getlist("skill")
    more = request.form.get("more")
    print(user,pwd,gender,hobby_list,city,skill_list,more)
    # 将用户信息写入文件中实现注册、写入到excel中实现注册,写入到mysql中实现注册
    # print(request.form)
    # 给用户返回结果,必须有return语句
    return "注册成功"

5、将get请求与post请求合二为一

@app.route('/register', methods = ['GET','POST'])
def register():
    if request.methods =="GET":
        return render_template('register.html')
    else:
        # 接收用户通过post形式发送过来的数据
        user = request.form.get("user")
        pwd = request.form.get("pwd")
        gender = request.form.get("gender")
        # 当有多个答案产生时,使用getlist
        hobby_list = request.form.getlist("hobby")
        city = request.form.get("gender")
        skill_list = request.form.getlist("skill")
        more = request.form.get("more")
        print(user, pwd, gender, hobby_list, city, skill_list, more)
        # 将用户信息写入文件中实现注册、写入到excel中实现注册,写入到mysql中实现注册
        # print(request.form)
        # 给用户返回结果,必须有return语句
        return "注册成功"

记得修改html文件下的url

<form method = "post"action="/register" >

6、最终代码

# app.py
from flask import Flask,render_template,request

app = Flask(__name__)

@app.route('/register', methods = ['GET','POST'])
def register():
    if request.methods =="GET":
        return render_template('register.html')
    else:
        # 接收用户通过post形式发送过来的数据
        user = request.form.get("user")
        pwd = request.form.get("pwd")
        gender = request.form.get("gender")
        # 当有多个答案产生时,使用getlist
        hobby_list = request.form.getlist("hobby")
        city = request.form.get("gender")
        skill_list = request.form.getlist("skill")
        more = request.form.get("more")
        print(user, pwd, gender, hobby_list, city, skill_list, more)
        # 将用户信息写入文件中实现注册、写入到excel中实现注册,写入到mysql中实现注册
        # print(request.form)
        # 给用户返回结果,必须有return语句
        return "注册成功"


@app.route("/post/reg", methods = ['POST'])
def post_register():
    # 接收用户通过post形式发送过来的数据
    user = request.form.get("user")
    pwd = request.form.get("pwd")
    gender = request.form.get("gender")
    # 当有多个答案产生时,使用getlist
    hobby_list = request.form.getlist("hobby")
    city = request.form.get("gender")
    skill_list = request.form.getlist("skill")
    more = request.form.get("more")
    print(user,pwd,gender,hobby_list,city,skill_list,more)
    # 将用户信息写入文件中实现注册、写入到excel中实现注册,写入到mysql中实现注册
    # print(request.form)
    # 给用户返回结果,必须有return语句
    return "注册成功"

if __name__ == '__main__':
    app.run()
# register.html
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
    <h1>用户注册</h1>
    <!--  使用get方式提交,method为post/get,action保存提交到哪里 -->
    <form method = "post"action="/register" >
        <div>
            用户名:<input type="text" name="user">
        </div>
        <div>
            密码:<input type="password" name="pwd">
        </div>
        <div>
            性别:
            <input type="radio" name = "gender" value = "1"> 男
            <input type="radio" name = "gender" value = "2"> 女
        </div>
        <div>
            爱好:
            <input type="checkbox" name="hobby" value = "10"> 篮球
            <input type="checkbox" name="hobby" value = "20"> 足球
            <input type="checkbox" name="hobby" value = "30"> 乒乓球
        </div>
        <div>
            城市:
            <select name ="city">
                <option value="bj">北京</option>
                <option value="tj">天津</option>
            </select>
        </div>
        <div>
            擅长领域:
            <select name ="skill" multiple>
                <option value="py">python</option>
                <option value="ja">java</option>
            </select>
        </div>
        <!--submit可以实现页面跳转,当加入form时-->
<!--        <input type = "button" value="button按钮">-->

        <div>
            备注:<textarea name="more"></textarea>
        </div>
        <div>
            <input type = "submit" value="submit按钮">
        </div>
    </form>
</body>
</html>
posted @ 2022-12-29 22:33  风归去  阅读(550)  评论(0编辑  收藏  举报