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)