Python的Bottle框架中实现最基本的get和post的方法的教程


Posted in Python onApril 30, 2015

1、GET方式:
  

# -*- coding: utf-8 -*-
#!/usr/bin/python
# filename: GETPOST_test.py
# codedtime: 2014-9-20 19:07:04


import bottle

def check_login(username, password):
  if username == '123' and password == '234':
    return True
  else:
    return False

@bottle.route('/login')
def login():
  if bottle.request.GET.get('do_submit','').strip(): #点击登录按钮
    # 第一种方式(latin1编码)
##    username = bottle.request.GET.get('username','').strip() # 用户名
##    password = bottle.request.GET.get('password','').strip() # 密码

    #第二种方式(获取username\password)(latin1编码)
    getValue = bottle.request.query_string
##    username = bottle.request.query['username'] # An utf8 string provisionally decoded as ISO-8859-1 by the server
##    password = bottle.request.query['password'] # 注:ISO-8859-1(即aka latin1编码)
    #第三种方式(获取UTF-8编码)
    username = bottle.request.query.username   # The same string correctly re-encoded as utf8 by bottle
    password = bottle.request.query.password   # The same string correctly re-encoded as utf8 by bottle
    
    print('getValue= '+getValue,
       '\r\nusername= '+username,
       '\r\npassword= '+password) # test
    
    if check_login(username, password):
      return "<p> Your login information was correct.</p>"
    else:
      return "<p>Login failed. </p>"
  else:
    return ''' <form action="/login" method="get">
           Username: <input name="username" type="text" />
           Password: <input name="password" type="password" />
           <input value="Login" name="do_submit" type="submit">
          </form>
        '''

bottle.run(host='localhost', port=8083)

这里注意说一下Bottle编码的问题,只有第三种方式会将我们输入的字符如果是UTF-8重新编码为UTF-8,当你的内容里有中文或其他非英文字符时,这种方式就显的尤为重要。

运行效果如下:

Python的Bottle框架中实现最基本的get和post的方法的教程

2、POST方式:
 

# -*- coding: utf-8 -*-
#!/usr/bin/python
# filename: GETPOST_test.py
# codedtime: 2014-9-20 19:07:04


import bottle

def check_login(username, password):
  if username == '123' and password == '234':
    return True
  else:
    return False

@bottle.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>
      '''

@bottle.route('/login', method='POST')
def do_login():
  # 第一种方式
#  username = request.forms.get('username')
#  password = request.forms.get('password')

  #第二种方式
  postValue = bottle.request.POST.decode('utf-8')
  username = bottle.request.POST.get('username')
  password = bottle.request.POST.get('password')

  
  if check_login(username, password):
    return "<p> Your login information was correct.</p>"
  else:
    return "<p>Login failed. </p>"

bottle.run(host='localhost', port=8083)

登录网站、提交文章、评论等我们一般都会用POST方式而非GET方式,那么类似于第二种方式的编码就很用用处,能够正确的处理我们在Form中提交的内容。而第一种则可能会出现传说中的乱码问题,谨记!!!

Python 相关文章推荐
django model去掉unique_together报错的解决方案
Oct 18 Python
Python实现基于多线程、多用户的FTP服务器与客户端功能完整实例
Aug 18 Python
python添加模块搜索路径方法
Sep 11 Python
利用Python找出序列中出现最多的元素示例代码
Dec 08 Python
python实现树形打印目录结构
Mar 29 Python
Python跑循环时内存泄露的解决方法
Jan 13 Python
使用Python爬虫库requests发送表单数据和JSON数据
Jan 25 Python
Python3基本输入与输出操作实例分析
Feb 14 Python
Pycharm中配置远程Docker运行环境的教程图解
Jun 11 Python
Python3爬虫中Splash的知识总结
Jul 10 Python
Python 如何操作 SQLite 数据库
Aug 17 Python
python 实现图片特效处理
Apr 03 Python
Python中使用Beautiful Soup库的超详细教程
Apr 30 #Python
Python中正则表达式的详细教程
Apr 30 #Python
详解在Python程序中使用Cookie的教程
Apr 30 #Python
处理Python中的URLError异常的方法
Apr 30 #Python
介绍Python的Urllib库的一些高级用法
Apr 30 #Python
python插入数据到列表的方法
Apr 30 #Python
Python的Urllib库的基本使用教程
Apr 30 #Python
You might like
PHP初学入门
2006/11/19 PHP
(PHP实现)只使用++运算实现加法,减法,乘法,除法
2013/06/27 PHP
php去除HTML标签实例
2013/11/06 PHP
windows7下安装php的imagick和imagemagick扩展教程
2014/07/04 PHP
php简单smarty入门程序实例
2015/06/11 PHP
php 无限级分类 获取顶级分类ID
2016/03/13 PHP
Ubuntu 16.04下安装PHP 7过程详解
2017/03/28 PHP
php将从数据库中获得的数据转换成json格式并输出的方法
2018/08/21 PHP
ThinkPHP3.2框架操作Redis的方法分析
2019/05/05 PHP
javascript radio 联动效果
2009/03/04 Javascript
jQuery与ExtJS之选择实例分析
2010/08/19 Javascript
js实现动态添加、删除行、onkeyup表格求和示例
2013/08/18 Javascript
JQuery中form验证出错信息的查看方法
2013/10/08 Javascript
教你如何使用PHP输出中文JSON字符串
2014/05/22 Javascript
JQuery判断radio(单选框)是否选中和获取选中值方法总结
2015/04/15 Javascript
javascript实时获取鼠标坐标值并显示的方法
2015/04/30 Javascript
基于jQuery实现的菜单切换效果
2015/10/16 Javascript
jQuery解析Json实例详解
2015/11/24 Javascript
jQuery实现简单的DIV拖动效果
2016/02/19 Javascript
jQuery通过写入cookie实现更换网页背景的方法
2016/04/15 Javascript
es6基础学习之解构赋值
2018/12/10 Javascript
Element输入框带历史查询记录的实现示例
2019/01/15 Javascript
webpack项目使用eslint建立代码规范实现
2019/05/16 Javascript
vue 实现通过vuex 存储值 在不同界面使用
2019/11/11 Javascript
[42:34]VP vs VG 2018国际邀请赛小组赛BO2 第一场 8.19
2018/08/21 DOTA
[52:39]完美世界DOTA2联赛PWL S3 CPG vs Forest 第一场 12.16
2020/12/17 DOTA
Python 返回汉字的汉语拼音
2009/02/27 Python
使用python语言,比较两个字符串是否相同的实例
2018/06/29 Python
Python操作配置文件ini的三种方法讲解
2019/02/22 Python
Django基础知识 web框架的本质详解
2019/07/18 Python
Python 二叉树的层序建立与三种遍历实现详解
2019/07/29 Python
python实现邮件循环自动发件功能
2020/09/11 Python
在vscode中启动conda虚拟环境的思路详解
2020/12/25 Python
旷课检讨书大全
2014/01/21 职场文书
捐书活动总结
2014/05/04 职场文书
婚育证明格式
2015/06/17 职场文书