简单的连接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脚本实现Web漏洞扫描工具
Oct 25 Python
Python模拟登陆实现代码
Jun 14 Python
python安装numpy&安装matplotlib& scipy的教程
Nov 02 Python
python分治法求二维数组局部峰值方法
Apr 03 Python
python爬虫_实现校园网自动重连脚本的教程
Apr 22 Python
python 对txt中每行内容进行批量替换的方法
Jul 11 Python
Python实现的拉格朗日插值法示例
Jan 08 Python
详解python和matlab的优势与区别
Jun 28 Python
pytorch 自定义数据集加载方法
Aug 18 Python
PyTorch里面的torch.nn.Parameter()详解
Jan 03 Python
Pymysql实现往表中插入数据过程解析
Jun 02 Python
解决tensorflow/keras时出现数组维度不匹配问题
Jun 29 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短网址和数字之间相互转换的方法
2015/03/13 PHP
ThinkPHP实现静态缓存和动态缓存示例代码
2017/05/02 PHP
常用Extjs工具:Extjs.util.Format使用方法
2012/03/22 Javascript
使用jQuery实现的网页版的个人简历(可换肤)
2013/04/19 Javascript
extjs4 treepanel动态改变行高度示例
2013/12/17 Javascript
node.js入门教程迷你书、node.js入门web应用开发完全示例
2014/04/06 Javascript
学习JavaScript设计模式之状态模式
2016/01/08 Javascript
基于zepto的移动端轻量级日期插件--date_picker
2016/03/04 Javascript
JavaScript编写带旋转+线条干扰的验证码脚本实例
2016/05/30 Javascript
Nodejs进阶:如何将图片转成datauri嵌入到网页中去实例
2016/11/21 NodeJs
vue动态组件实现选项卡切换效果
2017/03/08 Javascript
vue组件详解之使用slot分发内容
2018/04/09 Javascript
nuxt.js中间件实现拦截权限判断的方法
2018/11/21 Javascript
深入探讨JavaScript的最基本部分之执行上下文
2019/02/12 Javascript
微信小程序官方动态自定义底部tabBar的例子
2019/09/04 Javascript
Python获取某一天是星期几的方法示例
2017/01/17 Python
基于tensorflow加载部分层的方法
2018/07/26 Python
python将txt等文件中的数据读为numpy数组的方法
2018/12/22 Python
Python Django框架单元测试之文件上传测试示例
2019/05/17 Python
html5 worker 实例(二) 图片变换效果
2013/06/24 HTML / CSS
Expedia印度尼西亚站:预订酒店、廉价航班和度假套餐
2018/01/31 全球购物
英国领先的鞋类零售商和顶级品牌的官方零售商:Wynsors
2020/02/17 全球购物
Javascript如何发送一个Ajax请求
2015/01/26 面试题
几道Web/Ajax的面试题
2016/11/05 面试题
经典优秀毕业生求职信范文分享
2013/12/18 职场文书
大学英语演讲稿(中英文对照)
2014/01/14 职场文书
岗位竞聘书范文
2014/03/31 职场文书
机关出纳岗位职责
2014/04/03 职场文书
《闻一多先生的说和做》教学反思
2014/04/28 职场文书
大学新生军训自我鉴定范文
2014/09/13 职场文书
财产分割协议书范本
2014/11/03 职场文书
志愿者事迹材料
2014/12/26 职场文书
2015年基层党组织公开承诺书
2015/01/21 职场文书
防暑降温通知书
2015/04/27 职场文书
任长霞观后感
2015/06/16 职场文书
Flutter集成高德地图并添加自定义Maker的实践
2022/04/07 Java/Android