gpt4 book ai didi

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

转载 作者:可可西里 更新时间:2023-11-01 05:41:15 25 4
gpt4 key购买 nike

我正在为 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com