从 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
我有一个 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