首页 > 编程语言 >python-web:flask框架下的html实例——用户注册页面

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

时间:2022-12-29 22:45:38浏览次数:38  
标签:web form get python gender 用户注册 request list post

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>

标签:web,form,get,python,gender,用户注册,request,list,post
From: https://www.cnblogs.com/N-lim/p/17013723.html

相关文章

  • 从webApi调用存储过程引发的一连串思考
    业务场景是这样的,要编写一个webapi程序,去调用存储过程。项目使用EFcore,我右键点击EFcore工具,再选择反向工程,自动生成了调用存储过程的方法,如果存储过程有返回值,还会自动生......
  • Python 面向对象
    目录Python面向对象方法没有重载方法的动态性私有属性和私有方法(实现封装)@property装饰器属性和方法命名总结Python面向对象方法没有重载在其他语言中,可以定义多个......
  • Python 面向对象进阶
    目录Python面向对象进阶面向对象三大特征介绍继承语法格式类成员的继承和重写查看类的继承层次结构与根类属性重写__str__()方法Python面向对象进阶面向对象三大特征......
  • 3webAPI
    目录1Dom 51.2什么是DOM 51.3DOM树是什么 51.4DOM对象 51.5DOM树是什么 51.6DOM对象怎么创建的 51.7document是什么 51.8页面渲染的过程 51.9console.log与consol......
  • [oeasy]python0035_ 整合shell编程_循环_延迟_清屏
    ​ 整合shell编程回忆上次内容用\r可以让输出位置回到行首原位刷新时间如果想要的是大字符效果需要使用figlet但同时还希望能刷新​编辑这可能......
  • Python创建虚拟环境
    Linux下安装1、virtualenv安装python的虚拟环境主要使用的是virtualenv软件。安装之前需要用到pip,首先检测是否安装:pip3list如果没有安装的话运行:sudoapt-getin......
  • Web前端学习笔记3——列表与表单
    无序列表无序列表的标签:<ul></ul>无序列表列表项的标签:<li></li>ul标签中只能嵌套li标签,不能存放别的标签或者数字,li标签之中可以存放任何元素和标签无序列表会默认在......
  • SpringBoot - WebMvcConfigurer 配置类
    WebMvcConfigurer:1.publicvoidconfigurePathMatch(PathMatchConfigurerconfigurer)路径匹配规则一般不用修改2.publicvoidconfigureContentNegotiation(ContentNe......
  • 用Python解析XML的几种常见方法的介绍
    一、简介XML(eXtensibleMarkupLanguage)指可扩展标记语言,被设计用来传输和存储数据,已经日趋成为当前许多新生技术的核心,在不同的领域都有着不同的应用。它是web发展到一定......
  • python不同排序算法的比较
    1.冒泡排序:相邻两个数相比较,如果大于则交换顺序,有序区在列表尾部 代码实例:defbubble_sort(li):foriinrange(len(li)-1):forjinran......