简单的连接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 变量类型及命名规则介绍
Jun 08 Python
python解析模块(ConfigParser)使用方法
Dec 10 Python
Python解析并读取PDF文件内容的方法
May 08 Python
Python简单定义与使用二叉树示例
May 11 Python
解决python xx.py文件点击完之后一闪而过的问题
Jun 24 Python
Django发送邮件功能实例详解
Sep 02 Python
flask框架配置mysql数据库操作详解
Nov 29 Python
Python面向对象原理与基础语法详解
Jan 02 Python
python求最大公约数和最小公倍数的简单方法
Feb 13 Python
基于python的docx模块处理word和WPS的docx格式文件方式
Feb 13 Python
python制作一个简单的gui 数据库查询界面
Nov 19 Python
python数字图像处理之图像自动阈值分割示例
Jun 28 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
利用PHP函数计算中英文字符串长度的方法
2014/11/11 PHP
PHP调试函数和日志记录函数分享
2015/01/31 PHP
老生常谈PHP面向对象之命令模式(必看篇)
2017/05/24 PHP
laravel Model 执行事务的实现
2019/10/10 PHP
javascript parseInt 函数分析(转)
2009/03/21 Javascript
javascript中最常用的继承模式 组合继承
2010/08/12 Javascript
js获取系统的根路径实现介绍
2013/09/08 Javascript
kindeditor修复会替换script内容的问题
2015/04/03 Javascript
分享9点个人认为比较重要的javascript 编程技巧
2015/04/27 Javascript
JavaScript实现时钟滴答声效果
2017/01/29 Javascript
深入理解Vue2.x的虚拟DOM diff原理
2017/09/27 Javascript
浅谈React + Webpack 构建打包优化
2018/01/23 Javascript
Node.js中,在cmd界面,进入退出Node.js运行环境的方法
2018/05/12 Javascript
通过封装scroll.js 获取滚动条的值
2018/07/13 Javascript
Vue中的v-for指令不起效果的解决方法
2018/09/27 Javascript
浅谈Fetch 数据交互方式
2018/12/20 Javascript
微信小程序全局变量GLOBALDATA的定义和调用过程解析
2019/09/23 Javascript
[02:21]DOTA2英雄基础教程 蝙蝠骑士
2013/12/16 DOTA
[04:54]DOTA2-DPC中国联赛1月31日Recap集锦
2021/03/11 DOTA
Python单例模式实例分析
2015/01/14 Python
python学习之编写查询ip程序
2016/02/27 Python
浅谈python类属性的访问、设置和删除方法
2016/07/25 Python
用Python写王者荣耀刷金币脚本
2017/12/21 Python
简单实现Python爬取网络图片
2018/04/01 Python
对PyTorch torch.stack的实例讲解
2018/07/30 Python
Python设计模式之适配器模式原理与用法详解
2019/01/15 Python
Python3调用百度AI识别图片中的文字功能示例【测试可用】
2019/03/13 Python
python实战串口助手_解决8串口多个发送的问题
2019/06/12 Python
Python之Sklearn使用入门教程
2021/02/19 Python
Evisu官方网站:日本牛仔品牌,时尚街头设计风格
2016/12/30 全球购物
你常见到的runtime exception
2016/09/05 面试题
白酒业务员岗位职责
2013/12/27 职场文书
个性发展自我评价
2014/02/11 职场文书
教师对学生的评语
2014/04/28 职场文书
教师批评与自我批评范文
2014/10/15 职场文书
DBCA命令行搭建Oracle ADG的流程
2021/06/11 Oracle