python - 如何使用 peewee/mysqldb 通过 python 查询 MySQL 数据库?

标签 python mysql ios peewee

我正在为 App.net 创建一个 iOS 客户端,我正在尝试设置一个推送通知服务器。目前,我的应用程序可以将用户的 App.net 帐户 ID(一串数字)和 APNS 设备 token 添加到我服务器上的 MySQL 数据库中。它还可以删除此数据。我改编了这两个教程中的代码:

另外,我改编了this awesome python script收听 App.net 的 App Stream API。

我的 python 很糟糕,我的 MySQL 知识也很糟糕。我想要做的是访问我需要通知的帐户的 APNS 设备 token 。我的数据库表的每个条目都有两个字段/列,一个用于 user_id,一个用于 device_token。我不确定术语,如果我能澄清一下,请告诉我。

我一直在尝试使用 peewee从数据库中读取,但我无法理解。这是一个带有占位符 user_id 的测试脚本:

import logging
from pprint import pprint

import peewee
from peewee import *

db = peewee.MySQLDatabase("...", host="localhost", user="...", passwd="...")

class MySQLModel(peewee.Model):
    class Meta:
        database = db

class Active_Users(MySQLModel):
    user_id = peewee.CharField(primary_key=True)
    device_token = peewee.CharField()

db.connect()

# This is the placeholder user_id
userID = '1234' 

token = Active_Users.select().where(Active_Users.user_id == userID)
pprint(token)

然后打印出来:

<class '__main__.User'> SELECT t1.`id`, t1.`user_id`, t1.`device_token` FROM `user` AS t1 WHERE (t1.`user_id` = %s) [u'1234']

如果代码没有说清楚,我正在尝试在数据库中查询 user_id 为 '1234' 的行,我想存储将同一行的 device_token(同样,可能是错误的术语)转换为一个变量,稍后在脚本中发送推送通知时可以使用该变量。

如何正确返回 device_token?另外,放弃 peewee 并使用 python-mysqldb 简单地查询数据库会更容易吗?如果是这样,我该怎么做呢?

最佳答案

调用 User.select().where(User.user_id == userID) 返回一个 User 对象,但您将其分配给一个名为 的变量token 因为您只需要 device_token

你的任务应该是这样的:

matching_users = Active_Users.select().where(Active_Users.user_id == userID) # returns an array of matching users even if there's just one
if matching_users is not None:
    token = matching_users[0].device_token

关于python - 如何使用 peewee/mysqldb 通过 python 查询 MySQL 数据库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20473432/

相关文章:

python - 如何消除 matplotlib 烛台上的模糊?

mysql - SQL UPDATE 在字段/列中添加值

objective-c - 根据目标创建不同的 RootViewController 实例

ios - UICollectionView 适用于 iOS7 但不适用于 iOS6

python - from_point 函数未返回 Windows CMD 上的预期控制

python - 根据一列的值从二维矩阵中提取值

mysql - 通过多个连接加速 SQL 查询

php - 与 DELETE ALL 和 INSERT 相比,UPDATE OR INSERT 命令有技术优势吗?

ios - 使用动画从右到左移除 View

python - Django 高级搜索