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

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  密码为空。

(0)

相关推荐

  • Python的Bottle框架中获取制定cookie的教程

    这两天为用bottle+mongodb写的一个项目加上登录功能,无奈怎么都获取不到保存的cookie,文档给出让我们这样操作cookie的代码片段: @route('/login') def login (): username = request .forms .get('username ') password = request .forms .get('password ') if check_user_credentials(username, password): response

  • Bottle框架中的装饰器类和描述符应用详解

    最近在阅读Python微型Web框架Bottle的源码,发现了Bottle中有一个既是装饰器类又是描述符的有趣实现.刚好这两个点是Python比较的难理解,又混合在一起,让代码有些晦涩难懂.但理解代码之后不由得为Python语言的简洁优美赞叹.所以把相关知识和想法稍微整理,以供分享. 正文 Bottle是Python的一个微型Web框架,所有代码都在一个bottle.py文件中,只依赖标准库实现,兼容Python 2和Python 3,而且最新的稳定版0.12代码也只有3700行左右.虽然小,但

  • Python的Bottle框架的一些使用技巧介绍

    之前对bottle做过不少的介绍,也写过一些文章来说明bottle的缺点,最近发现其实之前有些地方说的不太公平,所以趁此机会也来更正一下. bottle是支持类似flask url_for的语法的,具体使用方法在下文介绍     bottle的request.query之类的参数默认是str类型,也是有原因的,比如我在给google做代理的时候,编码就不一定是utf8的,如果强制转化utf8就会报错     之前的bug也得到了修正,比如mount('/x',app)之后,/x/和/x都可以访问

  • Python的Bottle框架中实现最基本的get和post的方法的教程

    1.GET方式: # -*- coding: utf-8 -*- #!/usr/bin/python # filename: GETPOST_test.py # codedtime: 2014-9-20 19:07:04 import bottle def check_login(username, password): if username == '123' and password == '234': return True else: return False @bottle.route

  • 利用Python的装饰器解决Bottle框架中用户验证问题

    首先来分析下需求,web程序后台需要认证,后台页面包含多个页面,最普通的方法就是为每个url添加认证,但是这样就需要每个每个绑定url的后台函数都需要添加类似或者相同的代码,但是这样做代码就过度冗余,而且不利于扩展. 接下来我们先不谈及装饰器,我们都知道Python是个很强大的语言,她可以将函数当做参数传递给函数,最简单的: def p(): print 'Hello,world' def funcfactor(func): print 'calling function named', fun

  • Python的Bottle框架中返回静态文件和JSON对象的方法

    代码如下: # -*- coding: utf-8 -*- #!/usr/bin/python # filename: todo.py # codedtime: 2014-8-28 20:50:44 import sqlite3 import bottle @bottle.route('/help3') def help(): return bottle.static_file('help.html', root='.') #静态文件 @bottle.route('/json:json#[0-9

  • 在Python的Bottle框架中使用微信API的示例

    微信这个东西估计宅男没几个不熟悉的吧,微信经过这么两年多的发展终于向开放平台跨出了友好的一步.蛋疼的以为微信会出一个详细的api等接口,兴奋不已的去申请了微信公共平台,然后开始找各种api的位置-- 花费了近一个小时,依然没找到-- 最后动用Google大杀器,终于找到了这么个链接.我了个去的,没比这还简单的api文档了吧. 最让人无法理解的是:居然没有本地开发环境支持,每次都要放在生产环境去调试. 最让人欣慰的是:就那么俩方法,生产环境调试几次也就完事了. Python(bottle)版代码如

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

    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 impo

  • Java连接mysql数据库并进行内容查询的方法

    最近用框架做了几个项目,感觉当初底层的东西有点忘了,写一个JDBC的简单的连接代码来熟悉回顾一下,也希望对刚接触的新手能有所帮助.这也是我的第一篇随笔,废话不多说,直接上代码: public Connection getCon() { //数据库连接名称 String username="root"; //数据库连接密码 String password=""; String driver="com.mysql.jdbc.Driver"; //其中

  • 关于python的bottle框架跨域请求报错问题的处理方法

    在用python的bottle框架开发时,前端使用ajax跨域访问时,js代码老是进入不了success,而是进入了error,而返回的状态却是200.url直接在浏览器访问也是正常的,浏览器按F12后会发现下面这个错误提示 XMLHttpRequest cannot load http://192.168.0.118:8081/get_mobile_number/?id=1. No 'Access-Control-Allow-Origin' header is present on the r

  • PHP连接MySql闪断自动重连的方法

    使用php作为后台运行程序(例如短信群发),在cli模式下执行php,php需要连接mysql循环执行数据库处理. 当mysql连接闪断时,之后循环的执行将会失败. 我们需要设计一个方法,当mysql闪断时,可以自动重新连接,使后面的程序可以正常执行下去. 1.创建测试数据表 CREATE TABLE `user` ( `id` int(11) unsigned NOT NULL AUTO_INCREMENT, `name` varchar(20) NOT NULL, PRIMARY KEY (

  • Java连接MySQL数据库增删改查的通用方法(推荐)

    运行环境:eclipse+MySQL 以前我们Java连接MySQL数据库都是一个数据库写一个类,类下面写好多方法,要是多个数据库,就要写多个类多个方法,导致代码编写太过于繁琐,所以为了改变这样的繁琐,我将连接数据库的方法进行了一系列的封装,使用户传入一个对象值Object就可以得到想要的. 我在之前写过一篇普通的Java连接MySQL数据库,大家可以看看,以便对比参考之后就知道差距了 数据库--MySQL-->Java篇 接下来我给大家讲讲如何将这个不可复用,又多重复的连接代码,封装起来,非常

  • IDEA连接mysql报错的问题及解决方法

    IDEA连接mysql报错了! 本人之前使用MySQL以及后续使用mybatis和mybatisPlus都是使用sqlyog或者navicat,今天重新学习sql,看到up使用了,idea插件来连接数据库(mysql)也来学习使用了,结果出现一系类问题.本博客开始记录. ---------------------------前进的道路充满荆棘.--------------------------------------------------------------------------- 错

  • IDEA连接MySQL提示serverTimezone的问题及解决方法

    今天,在使用IDEA软件连接MySQL数据库时,一直报时区相关的错误(其实吧,以前也遇到过这个错误) 错误: Server returns invalid timezone. Go to 'Advanced' tab and set 'serverTimezone' property manually. 错误页面: 解决办法一 之前的解决办法是: "Data Sources and Drivers" ~ "General" ~ "URL" 中指明

  • Navicat连接mysql报错1251错误的解决方法

    本文为大家分享了Navicat连接mysql报错1251错误的解决方法,供大家参考 错误提示 出现这个原因是mysql8 之前的版本中加密规则是mysql_native_password,而在mysql8之后,加密规则是caching_sha2_password 解决办法:把mysql用户登录密码加密规则还原成mysql_native_password. 步骤: 1.打开cmd命令窗口,输入命令 mysql -uroot -p 打开MySQL数据库,然后输入密码进行登录. 2.修改加密规则 将加

  • Navicat连接mysql报错2003(10060)的解决方法

    目录 发现报错 1.MySQL的服务没有启动,这个是最常见的问题原因 2.MySQL没有远程权限 3.防火墙拦截 总结 发现报错 对于Navicat连接数据库mysql 出现报错2003(10060),如下所示报错 经过查询总结以上出现问题的主要解决方法三种: 1.MySQL的服务没有启动,这个是最常见的问题原因 WIN+R,输入services.msc打开服务管理器,找到mysql 如果显示mysql为禁用状态,可以右键启动服务,然后在Navicat重新测试连接 2.MySQL没有远程权限 1

  • Python的Bottle框架基本知识总结

    基本映射 映射使用在根据不同URLs请求来产生相对应的返回内容.Bottle使用route() 修饰器来实现映射. from bottle import route, run @route('/hello') def hello(): return "Hello World!" run() # This starts the HTTP server 运行这个程序,访问http://localhost:8080/hello将会在浏览器里看到 "Hello World!"

随机推荐