最近学了下python,先从最简单的web开发入手(我指得是相对于后台纯脚本,web开发更简单),直接上flask框架,发现sqlalchemy太重,学习曲线直线上升,换peewee,用了半天老报错,代码如下
from peewee import *
db = MySQLDatabase(host = '127.0.0.1', user = 'root', passwd = '123456', database = 'abc', charset = 'utf8')
class MyBaseModel(Model):
class Meta:
database = db
# @classmethod
# def getOne(cls, *query, **kwargs):
# #为了方便使用,新增此接口,查询不到返回None,而不抛出异常
# try:
# return cls.get(*query,**kwargs)
# except DoesNotExist:
# return None
class Admin(MyBaseModel):
id = IntegerField()
username = CharField(unique=True)
realname = CharField()
password = CharField()
class AdminLog(MyBaseModel):
id = IntegerField()
service
# -*- coding: utf-8 -*-
__author__ = 'yao'
from niuhome.admin.models.MyBaseModel import Admin
class AdminService:
@staticmethod
def CheckLogin(username,password):
model = Admin.get(Admin.username=='xx')
if model is None:
return u'该账户不存在'
else:
if model.password == password:
return True
else:
return u'密码错误'
报错如下
AdminDoesNotExist: Instance matching query does not exist:SQL: SELECT `t1`.`id`, `t1`.`username`, `t1`.`realname`, `t1`.`password` FROM `admin` AS t1 WHERE (`t1`.`username` = %s)PARAMS: [u'xx']
我想不应该啊,纯SQL直接数据库可查,翻文档,发现。。。
Selecting a single record
You can use the Model.get() method to retrieve a single instance matching the given query.
This method is a shortcut that calls Model.select() with the given query, but limits the result set to 1. Additionally, if no model matches the given query, a DoesNotExist exception will be raised.
所以说···py在web开发中,想像PHP那样方便是完全不可能的,侧重点不一样,看来还是写写后台脚本好了
后续踩坑在发文章分享···over