简单的连接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学习数据结构实例代码
May 11 Python
Python Requests安装与简单运用
Apr 07 Python
python制作企业邮箱的爆破脚本
Oct 05 Python
利用python获取Ping结果示例代码
Jul 06 Python
详解python websocket获取实时数据的几种常见链接方式
Jul 01 Python
Python assert语句的简单使用示例
Jul 28 Python
基于Python的微信机器人开发 微信登录和获取好友列表实现解析
Aug 21 Python
win10下opencv-python特定版本手动安装与pip自动安装教程
Mar 05 Python
Python如何在循环内使用list.remove()
Jun 01 Python
python datetime时间格式的相互转换问题
Jun 11 Python
pytest进阶教程之fixture函数详解
Mar 29 Python
Python代码,能玩30多款童年游戏!这些有几个是你玩过的
Apr 27 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
几种显示数据的方法的比较
2006/10/09 PHP
PHP快速推送微信模板消息
2017/04/14 PHP
js兼容火狐获取图片宽和高的方法
2015/05/21 Javascript
Vue.js每天必学之计算属性computed与$watch
2016/09/05 Javascript
详谈Angular路由与Nodejs路由的区别
2017/03/05 NodeJs
JS实现针对给定时间的倒计时功能示例
2017/04/11 Javascript
解决vue动态为数据添加新属性遇到的问题
2018/09/18 Javascript
深入理解vue-class-component源码阅读
2019/02/18 Javascript
Webpack4 使用Babel处理ES6语法的方法示例
2019/03/07 Javascript
基于vue开发微信小程序mpvue-docs跳转页面功能
2019/04/10 Javascript
JavaScript的查询机制LHS和RHS解析
2019/08/16 Javascript
Javascript异步编程async实现过程详解
2020/04/02 Javascript
使用vue实现通过变量动态拼接url
2020/07/22 Javascript
解决vue props传Array/Object类型值,子组件报错的情况
2020/11/07 Javascript
基于JavaScript实现简单扫雷游戏
2021/01/02 Javascript
Python实现的一个找零钱的小程序代码分享
2014/08/25 Python
Django框架自定义session处理操作示例
2019/05/27 Python
使用python来调用CAN通讯的DLL实现方法
2019/07/03 Python
OpenCV 模板匹配
2019/07/10 Python
python使用sessions模拟登录淘宝的方式
2019/08/16 Python
对pytorch中的梯度更新方法详解
2019/08/20 Python
Python嵌套函数,作用域与偏函数用法实例分析
2019/12/26 Python
Python爬虫解析网页的4种方式实例及原理解析
2019/12/30 Python
python pyecharts 实现一个文件绘制多张图
2020/05/13 Python
python 数据库查询返回list或tuple实例
2020/05/15 Python
HTML5拖放功能_动力节点Java学院整理
2017/07/13 HTML / CSS
英国女性时尚品牌:Apricot
2018/12/04 全球购物
高中语文课后反思
2014/04/27 职场文书
2015年度党风廉政建设工作情况汇报
2015/01/02 职场文书
电力安全学习心得体会
2016/01/18 职场文书
2016廉洁教育心得体会
2016/01/20 职场文书
2019年预备党员的思想汇报:加深对党的认知
2019/09/25 职场文书
Python爬虫之用Xpath获取关键标签实现自动评论盖楼抽奖(二)
2021/06/07 Python
Pygame Draw绘图函数的具体使用
2021/11/17 Python
浅谈Vue的computed计算属性
2022/03/21 Vue.js
Zabbix对Kafka topic积压数据监控的问题(bug优化)
2022/07/07 Servers