简单的连接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 mysqldb连接数据库
Mar 16 Python
Python字符串和文件操作常用函数分析
Apr 08 Python
Python中列表和元组的使用方法和区别详解
Dec 30 Python
Python中音频处理库pydub的使用教程
Jun 07 Python
解决seaborn在pycharm中绘图不出图的问题
May 24 Python
python opencv旋转图像(保持图像不被裁减)
Jul 26 Python
Python使用sort和class实现的多级排序功能示例
Aug 15 Python
使用Python创建简单的HTTP服务器的方法步骤
Apr 26 Python
Python3 socket即时通讯脚本实现代码实例(threading多线程)
Jun 01 Python
python3+openCV 获取图片中文本区域的最小外接矩形实例
Jun 02 Python
使用Keras加载含有自定义层或函数的模型操作
Jun 10 Python
Python实现简单的猜单词小游戏
Oct 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
apache和php之间协同工作的配置经验分享
2013/04/08 PHP
PHP分页详细讲解(有实例)
2013/10/30 PHP
PHP中几个可以提高运行效率的代码写法、技巧分享
2014/08/21 PHP
php中json_encode UTF-8中文乱码的更好解决方法
2014/09/28 PHP
php中实现记住密码下次自动登录的例子
2014/11/06 PHP
smarty模板引擎从配置文件中获取数据的方法
2015/01/22 PHP
php实现购物车功能(下)
2016/01/05 PHP
php遍历替换目录下文件指定内容的方法
2016/11/10 PHP
php接口实现拖拽排序功能
2018/04/23 PHP
php实现数组重复数字统计实例
2018/09/30 PHP
(仅IE下有效)关于checkbox 三态
2007/05/12 Javascript
jQuery学习7 操作JavaScript对象和集合的函数
2010/02/07 Javascript
js+css实现上下翻页相册代码分享
2015/08/18 Javascript
javascript学习指南之回调问题
2016/04/23 Javascript
js仿手机页面文件下拉刷新效果
2016/10/14 Javascript
谈谈JavaScript中浏览器兼容问题的写法小议
2016/12/17 Javascript
Angular 2父子组件之间共享服务通信的实现
2017/07/04 Javascript
JS Input里添加小图标的两种方法
2017/11/11 Javascript
vue-cli初始化项目中使用less的方法
2018/08/09 Javascript
JavaScript实现随机点名程序
2020/03/25 Javascript
实例讲解python中的序列化知识点
2018/10/08 Python
Python整数与Numpy数据溢出问题解决
2019/09/11 Python
使用pycharm和pylint检查python代码规范操作
2020/06/09 Python
Python环境使用OpenCV检测人脸实现教程
2020/10/19 Python
在Ubuntu中安装并配置Pycharm教程的实现方法
2021/01/06 Python
吃透移动端 Html5 响应式布局
2019/12/16 HTML / CSS
Ibatis如何使用动态表名
2015/07/12 面试题
人力资源专员自我评价怎么写
2013/09/19 职场文书
农村婚礼证婚词
2014/01/08 职场文书
2014年教研活动总结范文
2014/04/26 职场文书
2015年数学教研工作总结
2015/07/22 职场文书
《秋思》教学反思
2016/02/23 职场文书
解决Mysql多行子查询的使用及空值问题
2022/01/22 MySQL
Vue如何清空对象
2022/03/03 Vue.js
Python万能模板案例之matplotlib绘制甘特图
2022/04/13 Python
javascript中Set、Map、WeakSet、WeakMap区别
2022/12/24 Javascript