LintCode Django ORM查询题目详解

1947 : 使用虚拟环境requirements.txt构建Django

1948 : 实现视图函数,在网页上输出”hello,world“

 

Django框架入门开发,重点在于Model层利用ORM框架进行CRUD

方法就是根据官方文档进行开发,所以出Django的题目,最好给出提示,提示中是官方文档的连接,然后去对应查阅,解决,类似于开卷考试。

 

2167 · 查询或创建用户  

Django框架自带了User表,这里的查询以及创建参考官方文档

from django.contrib.auth.models import User
class UserService(object):
    @classmethod
    def get_or_create_user_by_username(cls, username):
        # -- write your code here --
        try:
            user = User.objects.get(username=username)
        except User.DoesNotExist:
            user = User(username=username)
            user.save()
        return user

2189 · 查询教师的信息并按年龄升序排序

这个就是查询

from teachers.models import Teacher

class TeacherService(object):

    @classmethod
    def get_teachers_order_by_age(cls):
        '''
        :param: None
        :return: a QuerySet of Teacher
        '''
        # -- write your code here --
        return Teacher.objects.all().order_by('age')

2191 · 查询超过 n 岁教师的信息

这里是过滤器的使用

from django.db.models import QuerySet
from teachers.models import Teacher

class TeacherService(object):

    @classmethod
    def filter_teachers_by_age(cls, age: int) -> QuerySet:
        '''
        :param age : Teacher's Age
        :return: a QuerySet of Teacher
        '''
        # -- write your code here --
        return Teacher.objects.filter(age__gt=age)

2192 · 根据邮箱查询教师信息

Django模糊查询

from django.db.models import QuerySet
from teachers.models import Teacher


class TeacherService(object):

    @classmethod
    def filter_teachers_by_domain(cls, domain: str) -> QuerySet:
        '''
        :param domain : Domain names without @
        :return: a QuerySet of Teacher
        '''
        # -- write your code here --
        return Teacher.objects.filter(email__iendswith='@' + domain)

2193 · 根据id查询老师的信息

Django get精确查询,根据主键查询

from .models import Teacher


class TeacherService(object):

    @classmethod
    def get_teacher_by_id(cls, id: int) -> Teacher:
        '''
        :param id:  primary key value
        :return: a object of Teacher
        '''
        # -- write your code here --
        return Teacher.objects.get(pk=id)

 2427 · 实现推文模型

这道题目要求实现一个模型

from django.db import models
from django.contrib.auth.models import User

class Tweet(models.Model):
    # write your code here
    user = models.ForeignKey(User, on_delete=models.SET_NULL, null=True)
    content = models.CharField(max_length=140)
    created_at = models.DateTimeField(auto_now_add=True)

    def __str__(self):
        return '{%s} {%s}: {%s}' % (self.created_at, self.user, self.content)

2162 · 使用邮箱查询用户

from django.contrib.auth.models import User
class UserService(object):

    @classmethod
    def filter_users_by_email(cls, email):
        '''
        :param email: a user's email
        :return: a list of User objects, or a QuerySet of User
        '''
        # -- write your code here --
        return User.objects.filter(email__iexact=email)

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值