从 Django 数据库模型中获取数据

Get data from django database model

我有一个 django 模型,PhoneNumberVerification

它有两列:phone 编号和代码。 如果给我一个 phone 号码,我希望能够获得代码。本质上,搜索 table 哪一行的 phone 数字作为我的 phone 数字,并获取该给定行的代码。

我可以为此编写 SQL,但我不知道如何执行它以在 Django 模型中获取数据,我想知道是否有更好的非 sql 方法来这样做。

我的模特:

class PhoneNumberVerification(models.Model):
    phone_number = models.TextField(max_length = 20, blank = False, unique = True)
    code = models.CharField(max_length = 8, blank = False)

我想要的:

from .models import PhoneNumberVerification

def get_code(phone_number):
    # do some stuff
    return code
def get_code(phone_number):
  verification = PhoneNumberVerification.objects.get(phone_number=phone_number)
  return verification.code

Django 的文档为初学者提供了很好的教程。 Writing your first Django app, part 2

要获取对象,您可以简单地使用:

def get_code(phone_number):
   try:
        phone_number_verification = PhoneNumberVerification.objects.get(phone_numer=phone_number)
        code = phone_number_verification.code
        return code
    except PhoneNumberVerification.DoesNotExist:
        pass # django will raise exception in case if number does not exist

如果您知道只有一个对象符合您的查询,您可以使用 get(),这将直接 return 对象。

否则,您可以使用 filter(),更多 here