当前位置:范文大全>职场文书>简历模板>Django笔试题

Django笔试题

时间:2025-07-05 05:37:40 简历模板 我要投稿
AI朗读 - Django笔试题
00:00 / 00:00

-

+

语速: 慢速 默认 快速
- 8 +
自动播放×

成熟大叔

温柔淑女

甜美少女

清亮青叔

呆萌萝莉

靓丽御姐

温馨提示:
是否自动播放到下一条内容?
立即播放当前内容?
确定
确定
取消

Django笔试题

Django是一个开放源代码的Web应用框架,由Python写成。采用了MVC的软件设计模式,即模型M,视图V和控制器C。下面就由第一范文网小编为大家介绍一下Django 笔试题的文章,欢迎阅读。

Django 笔试题篇1

Django的Model的继承有几种形式,分别是什么?

一、抽象继承:

顺便复习OOP思想,继承是面向对象的大前提╮(╯▽╰)╭,抽象类,之所以被创建是用来被继承的;一个类如果包含任何一种抽象方法,那么它就是抽象类;抽象方法一定要在子类中被复写;在继承关系中,抽象类永远在树枝节点上……扯远了,而且对于Python来说,已经没有这么多约束了。回到Django的Model,也一样,当我们需要某些公共方法.字段时,就需要一个父类为其他子类服务,这个父类没有manager,Django也不为这个类创建表,这种继承的定义方法如下:

class Animal(models.Model):

name = models.CharField(max_length=50)

age = models.PositiveIntegerField

# 下面这句决定了Animal是一个抽象类/Model

class Meta:

abstract = True

class Human(models.Model):

kind_hearted = models.BooleanField

sex = models.CharField('sex', choices=(('m','male'), ('f', 'female')), max_length=1)

上例中,我们的Human子model中,自然包含了name和age的字段,但是Animal不能作为正常model使用,由于没有manager,所以也不能实例化、保存。在子类中,不可以建立与这个抽象父类中的相同的字段,Django表示对报错负责。

二、 正常的继承 , 多重继承 ,Joined映射

和抽象继承的主要区别是父类这时也可以拥有数据库表了,并且不在身为存储公共信息的抽象类了,父类也可以进行实例化,查询等操作了。

class Country(models.Model):

name = models.CharField(max_length=10)

class Province(Country):

return = models.BooleanField

三、代理

即在子类中只能增加方法,而不能增加属性,在不影响父类数据存储的前提下,使子类继承父类,此时子类称为父类的“代理”。例如:

from django.contrib.auth.models import User

class Person(User):

# this makes a class proxy

proxy = True

def can_dance(self):

return True

# both Yellow and Black can_dance :)

class Yellow(Person):

hometown = models.CharField(max_length=30)

class Black(Person)

tribe_name = models.CharField(max_length=100)

我们为Person类增加了一个方法,可以跳舞,并且保持了User的数据字段的不变。

Django 笔试题篇2

Django的Queryset是什么,objects是什么,objects在哪里可以定义。

query + set,已经能猜出大概,它对应着数据库中的若干条记录。

例如有一个叫做Order的模型,在project的根目录下进入shell进行操作:

$python manage.py shell

>>>from app.order.models import Order

>>>type(Order.objects)

>>>

>>>order = Order.objects.all

>>>type(order)

上述方法很常用,看继承关系去理解Queryset和objets。objects是每个Model默认的manager类,通过manager的方法(也可通过QuerySet的方法得到,当然QuerySet也来自于manager),得到相应的Queryset,用以对数据库

模型

字段进行更多的操作。

objects(manager)方法可以自定义添加,也可以直接赋值覆盖掉默认的管理方法。

试着添加一个新的管理器的步骤是这样,首先定义一个manager类继承自models.Manager ,并在其中对self进行操作,如下:

# new manager

class OrderManager(models.Manager):

def title_count(self, keyword):

return self.filter(title__icontains=keyword).count

class Order(models.Models):

title = models.CharField(max_length=100)

#objects = models.Manager

objects = OrderManager

def __unicode__(self):

return self.title

上述例子中我们把 OrderManager 赋值给了objects,替换了默认的管理器。

tips:如果增加了新的管理器,且没有替换掉默认管理器,那么默认管理器需要显式的声明出来才可以使用。

Django中查询queryset时什么情况下用Q?

在进行相对复杂的查询时,使用 django.db.models.Q 对象。

例如需要进行复合条件的查询的SQL语句如下:

SELECT * FROM order WHERE id BETWEEN 20 ADN 100 AND(num <= '20' or num >= '30');

使用Q就可以写成:

from django.db.models import Q

from login.models import Order

Order.objects.get(

Q(id >= 20) & (id <= 100),

Q(num <= 20) | (num >= 30)

)

多嘴一句常识性问题啊…建数据库的时候避开各种关键字啊,否则忘了用``标记就报语法错误啊,

Django 笔试题篇3

Django中想验证表单提交是否格式正确需要用到Form中的哪个函数?

is_valid

函数

方法,用于检查表单提交是否正确。

Django取消级联删除

这个文档写的比较清楚:

user = models.ForeignKey(User, blank=True, null=True, on_delete=models.SET_NULL)

并且 SET_NULL 只有在 null 为True的时候,才可以使用。

Django中如何在Model保存前做一定的固定操作,比如写一句日志?

关键词: 信号

利用Django的Model的Signal Dispatcher, 通过django.db.models.signals.pre_save 方法,在事件发生前,

发射

触发信号,这一切都被调度中的receiver方法深藏功与名的保存了。

信号的处理一般都写在Model中,举个例子:

import logging

from django.db import models

from django.db.models.signals import pre_save

from django.dispatch import receiver

class Order(models.Model):

logger = logging.getLogger(__name__)

@receiver(pre_save, sender=Order)

def pre_save_handler(sender, **kwargs):

# 我们可以在Order这个Model保存之前尽情调戏了:)

logger.debug(",".format(sender, **kwargs))

print 'fuck universe'

这样应该就实现了题中的要求,类似的方法还有比如 pre_init 是在Model实例之前会触发, post_init 在实例之后触发,同理就是 pre_save 和 post_save 了。

Django中如何读取和保存session,整个session的运行机制是什么。

说到session的运行机制,就一定要先说一下cookie这一段信息。一般情况下cookies都是我们的浏览器生成的(显然可以人为修改),用于服务器对户进行筛选和维护,但是这个听上去很好吃的东西,能存的东西有点少而且容易被别人利用。这时候基于cookies的session的意义就比较明显了,在客户端的cookies中我们只保存session id,而将完整信息以加密信息的形式保存到服务器端,这样服务器可以根据session id相对安全的在数据库中查询用户的更细致的信息和状态。

在Django中session和cookies的操作方法一样,如下:

# 保存session

request.session['order_id'] = order_id

# 删除session

del request.session['order_id']

# 读取session

session.get('order_id', False)

Tags标签
《 Django笔试题.doc》
将本文的Word文档下载到电脑,方便收藏和打印
推荐度:
下载Word
《 Django笔试题.txt》
将本文的TXT文档下载到电脑,方便收藏和打印
推荐度:
下载TXT

【Django笔试题】相关文章:

个人简历的定义及格式2025-07-25

求职简历的基本格式及写作指导2025-07-25

个人简历的一般规格和要求2025-07-25

优秀简历的版式2025-07-25

毕业生求职简历格式模板2025-07-25

日本式简历书写方法2025-07-25

规范的个人简历格式2025-07-25

HR最爱的简历风格2025-07-25

如何做到简历格式的简洁明了2025-07-25

简历格式:简历的组成要素2025-07-25

评论区(Django笔试题)
内容:
剩余字数:360/360


     :: 正在为您加载评论……


每页10条,共0
一键复制全文
下载TXT 下载Word
听一听
next
play
next
close
Top