• 使用bottle进行web开发(8):get的参数传递,form里的额数据传递等


    1.诸如:forum?id=1&page=5这样的,在bottle里,可以通过request.query来访问这些值,举例如下;

    from bottle import Bottle,run,request,template
    
    app=Bottle()
    
    @app.route('/forum')
    def display_forum():
        formid=request.query.id
        pageid=request.query.page or '1'
        return template('Forum ID:{{id}} (page {{pageid}})',id=formid,pageid=pageid)
    
    run(app,host='127.0.0.1',port='3333')

    这里,bottle内部关键的一点,是使用了FormsDict类。

    2.html的<form>处理:

    假设,在html文件里,有这么一个东西:

    <form action="/login" method="post">
        Username:<input name="username" type="text"/>
        Password:<input name="password" type="password"/>
        <input value="Login" type="submit"/>
    </form>

    这里的action,指出通过url从form data中获得数据的过程,可以使用http的get或者post。

    如果是get,则这些值就显性的在url里出现,并且可以通过上面的例子里的BaseRequest.query来获取。

    这里,我们采用post方式。这个时候,数据就存在BaseRequest.forms中(参考FormsDict)

    具体代码如下:

    @app.route('/login')
    def login():
        return '''<form action="/login" method="post">
        Username:<input name="username" type="text"/>
        Password:<input name="password" type="password"/>
        <input value="Login" type="submit"/>
    </form>'''
    
    @app.route('/login',method='POST')
    def do_login():
        username=request.forms.get('username')
        password=request.forms.get('password')
        return template("<p>login name is :{{username}} and password is :{{password}}</p>",username=username,password=password)
    
    run(app,host='127.0.0.1',port='3333')

    还有其他的方式来或许form里的数据,这里列举如下;

  • 相关阅读:
    linux下安装rpc.rstatd
    myeclipse下编译jmeter2.4
    2010我最喜爱的耳机评选结果q
    HTTP/1.1 Range和ContentRange
    top命令的load average是什么意思?
    用户 'sa' 登录失败。该用户与可信 SQL Server 连接无关联。
    自定义ListBox,实现单多选切换(复选框)
    自定义水印输入框和密码框
    获取Windows Phone设备信息
    启动器和选择器学习(7)选择器之联系人信息保存
  • 原文地址:https://www.cnblogs.com/aomi/p/7054061.html
Copyright © 2020-2023  润新知