zoukankan      html  css  js  c++  java
  • 使用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里的数据,这里列举如下;

  • 相关阅读:
    全文检索引擎 sphinxcoreseek中文索引
    html 截图粘粘图片JS
    php 无限参数方法
    LINUX SSH 建立密钥对
    PHP递归无限分类,数组和直接输出。
    带cookie请求数据
    JS 红包随机
    《大话数据结构》 第四章 栈与队列
    《大话数据结构》第二章 算法
    《大话设计模式》 第二章 策略模式
  • 原文地址:https://www.cnblogs.com/aomi/p/7054061.html
Copyright © 2011-2022 走看看