python - 如何使用 Django 连接

标签 python mysql django django-views

您好,我正在 Django 中制作一个后端服务器,用于存储来自应用程序的用户数据。 以下是我的模型。

class Subscriber(models.Model):
    subId = models.IntegerField(max_length=20,unique=True,blank=False)
    Name = models.CharField(max_length=25,blank=True)

class SMS(models.Model):
    subscriberId = models.ForeignKey(Subscriber, null=False)
    epochTime =  models.IntegerField(null = False)
    time = models.CharField(max_length= 250 ,blank = False)

class Call(models.Model):
    subscriberId = models.ForeignKey(Subscriber, null=True)
    epochTime =  models.IntegerField(null = False)
    time = models.CharField(max_length= 50 ,blank = False)
    Date = models.CharField(max_length= 50 ,blank = False)

我需要编写一个 Django 查询,我将提供 subscriberId,Django 将返回我使用来自 Call 和 SMS 的该用户的数据(基本上想使用 Join )。 早些时候我在 mysql 中应用了它。

select * from Server_Text JOIN (Server_Call) ON (Server_SMS.subscriberId_id = 11 and Server_Call.subscriberId_id = 11) ;

服务器是我的 mysql 数据库。

最佳答案

当您使用 Django 时,您不应该考虑连接和 sql 查询;关键是模型层将这些抽象掉了。您只想获取订阅者,然后按照关系获取短信和通话信息:

subscriber = Subscriber.objects.get(subId=my_subscriber_id)
print subscriber.sms_set.all()  # all SMSs for that subscriber
print subscriber.call_set.all() # all Calls for that subscriber

如果您经常这样做,可以通过在初始查询中使用 prefetch_related('sms', 'call') 来提高效率。

关于python - 如何使用 Django 连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34134457/

相关文章:

Python 抓取响应数据

MySQL SELECT WHERE PERSON_NAME = 函数不工作

python - 使用 django 计数或 values_list 计数器,哪个更好?

javascript - 如何将 Django 模板上下文变量传递给 JS 函数

python - RuntimeError : Failed to shutdown the live test server in 2 seconds. 服务器可能卡住或生成响应缓慢。 - Django

python - 访问 Jinja2 中的宏上下文

python - 使用 QUiLoader() 加载时如何接受 MainWindow 的关闭事件?

python - 用于可选匹配字符串结尾的正则表达式(可选 $)

mysql - 如何查询和显示索引表的行(MySql DBMS)

mysql - innodb_online_alter_log_max_size 是否从内存或硬盘中获取内存