简单的连接MySQL与Python的Bottle框架的方法


Posted in Python onApril 30, 2015

Python关于mySQL的连接插件众多,Bottle下也有人专门开发的插件:bottle-mysql具体使用方法见官方,总共感觉其用法限制太多,其使用起来不方便,最适合的当然是,mySQL官网给Python提供的通用官方驱动,用起来很顺手:mysql-connector  具体操作如下:
 

# -*- coding: utf-8 -*-
#!/usr/bin/python
# filename: login_admin.py
# codedtime: 2014-9-7 11:26:11

import bottle
import mysql.connector  # 导入mysql数据库连接器

def check_userinfo():
  a_list = []  # 创建一个空列表
  username = bottle.request.GET.get('loginname','').strip() # 用户名
  password = bottle.request.GET.get('password','').strip()  # 密码
  if username is not None or password is not None:
    try:
      # 连接数据库 
      conn = mysql.connector.connect(user='root', password='123456', database='myblog')   
      cursor = conn.cursor() # 创建数据游标
      
      # 执行查询
      query = ("SELECT username, password FROM mb_users "
           "WHERE username=%s and password=%s")
      cursor.execute(query, (username, password))

      a_list = cursor.fetchall() # fetchone获取一个元组
      #count = int(cursor.rowcount) # 获取元组个数 
      return a_list

    except mysql.connector.Error as err:
      print("Something went wrong: {}".format(err))
      exit()
      
    finally:
      conn.commit() # 提交修改
      cursor.close() # 关闭数据库
      conn.close()
  else:
    return a_list

def login_admin():
  if bottle.request.GET.get('bs-submit','').strip(): #点击登录按钮
    a_list = check_userinfo()
    if a_list:
      a_name = a_list[0][0] # 获得用户名
      return bottle.template('templates/index_user.tpl', username = a_name)
    else:
      return bottle.template('templates/login_admin.tpl', action='/login_admin', 
              error_info='请输入正确的用户名或密码!')
  else:
    return bottle.template('templates/login_admin.tpl', action='', error_info=' ')

    
以上是MySQL在Botlle中的简单用法,

顺便提一下:安装和管理mySQL,建议安装使用XAMPP,XAMPP集成了Apache, MySQL、PHP、Tomcat等多种工具,一次性解决安装,不用自己繁琐的一个个安装和配置,而且管理也很方便。XAMPP安装的MySQL默认用户是:root  密码为空。

Python 相关文章推荐
python PIL模块与随机生成中文验证码
Feb 27 Python
django使用html模板减少代码代码解析
Dec 12 Python
python的中异常处理机制
Aug 30 Python
在django中图片上传的格式校验及大小方法
Jul 28 Python
Python数据库小程序源代码
Sep 15 Python
python实现大量图片重命名
Mar 23 Python
python中的subprocess.Popen()使用详解
Dec 25 Python
解决pyqt5异常退出无提示信息的问题
Apr 08 Python
python3中datetime库,time库以及pandas中的时间函数区别与详解
Apr 16 Python
python根据完整路径获得盘名/路径名/文件名/文件扩展名的方法
Apr 22 Python
k-means 聚类算法与Python实现代码
Jun 01 Python
django数据模型中null和blank的区别说明
Sep 02 Python
Python的Bottle框架中实现最基本的get和post的方法的教程
Apr 30 #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
You might like
经典的PHPer为什么被认为是草根?
2007/04/02 PHP
PHP按一定比例压缩图片的方法
2018/10/12 PHP
node.js中的定时器nextTick()和setImmediate()区别分析
2014/11/26 Javascript
JS绘制微信小程序画布时钟
2016/12/24 Javascript
浅谈键盘上回车按钮的js触发事件
2017/02/13 Javascript
10道典型的JavaScript面试题
2017/03/22 Javascript
vue2.0实现倒计时的插件(时间戳 刷新 跳转 都不影响)
2017/03/30 Javascript
JS基于对象的特性实现去除数组中重复项功能详解
2017/11/17 Javascript
Javascript 模拟mvc实现点餐程序案例详解
2020/12/24 Javascript
[00:26]TI7不朽珍藏III——冥界亚龙不朽展示
2017/07/15 DOTA
[01:07:02]DOTA2-DPC中国联赛 正赛 iG vs PSG.LGD BO3 第三场 2月26日
2021/03/11 DOTA
Python 执行字符串表达式函数(eval exec execfile)
2014/08/11 Python
玩转python爬虫之爬取糗事百科段子
2016/02/17 Python
遗传算法之Python实现代码
2017/10/10 Python
django 基于中间件实现限制ip频繁访问过程详解
2019/07/30 Python
Pandas实现DataFrame按行求百分数(比例数)
2019/12/27 Python
Python3运算符常见用法分析
2020/02/14 Python
python获取栅格点和面值的实现
2020/03/10 Python
python 使用建议与技巧分享(四)
2020/08/18 Python
五分钟学会怎么用Pygame做一个简单的贪吃蛇
2021/01/06 Python
解决Pycharm 运行后没有输出的问题
2021/02/05 Python
JACK & JONES瑞典官方网站:杰克琼斯欧式风格男装
2017/12/23 全球购物
安踏官方商城:anta.cn
2019/12/16 全球购物
美国新娘礼品店:The Paisley Box
2020/09/08 全球购物
Linux常见面试题
2016/10/04 面试题
配件采购员岗位职责
2013/12/03 职场文书
简历的个人自我评价范文
2014/01/03 职场文书
中医临床专业自我鉴定范文
2014/01/15 职场文书
计算机求职自荐信范文
2014/04/19 职场文书
首次购房证明
2015/06/19 职场文书
责任书格式
2019/04/18 职场文书
小学五年级(说明文3篇)
2019/08/13 职场文书
Nginx已编译的nginx-添加新模块
2021/04/01 Servers
PyCharm 安装与使用配置教程(windows,mac通用)
2021/05/12 Python
用Python selenium实现淘宝抢单机器人
2021/06/18 Python
Win11 Build 25179预览版发布(附更新内容+ISO官方镜像下载)
2022/08/14 数码科技