文章图片
下面列出了最常见的Django面试问题和答案。
1)向Django解释。
Django是一个免费的开源Web应用程序框架, 使用Python编写。它是一个服务器端Web框架, 可快速开发安全且可维护的网站。
2)Django是什么意思?
Django以Django Reinhardt(Django Reinhardt)的名字命名, Django Reinhardt是1930年代至1950年代初的吉普赛爵士吉他手, 被公认为有史以来最好的吉他手之一。
3)Django遵循哪种架构模式?
Django遵循Model-View-Template(MVT)架构模式。
请参见下图, 该图显示了基于MVT的控制流程。
文章图片
在这里, 用户向Django请求资源, Django充当控制器并检查URL中的可用资源。
如果URL映射, 则称为与模型和模板交互的视图, 它将呈现一个模板。
Django会回复用户并发送模板作为响应。
4)说明Django架构。
【精品!最好的Django面试题合集都在这里了】Django遵循MVT(模型视图模板)模式。它与MVC略有不同。
型号:它是数据访问层。它包含有关数据的所有信息, 即如何访问数据, 如何验证数据, 其行为以及数据之间的关系。
让我们来看一个例子。我们正在创建一个模型Employee, 它具有两个字段first_name和last_name。
from django.db import modelsclass Employee(models.Model):
first_name = models.CharField(max_length=30)
last_name = models.CharField(max_length=30)
视图:这是业务逻辑层。该层包含访问模型并遵循适当模板的逻辑。它就像模型和模板之间的桥梁。
import datetime
# Create your views here.
from django.http import HttpResponse
def index(request):
now = datetime.datetime.now()
html = "<
html>
<
body>
<
h3>
Now time is %s.<
/h3>
<
/body>
<
/html>
" % now
return HttpResponse(html)# rendering the template in HttpResponse
模板:这是一个表示层。该层包含与表示相关的决定, 即, 如何在网页或其他类型的文档上显示内容。
要配置模板系统, 我们必须在settings.py文件中提供一些条目。
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates', 'DIRS': [os.path.join(BASE_DIR, 'templates')], 'APP_DIRS': True, 'OPTIONS': {
'context_processors': [
'django.template.context_processors.debug', 'django.template.context_processors.request', 'django.contrib.auth.context_processors.auth', 'django.contrib.messages.context_processors.messages', ], }, }, ]
5)Django是高级Web框架还是低级框架?
Django是Python的高级Web框架, 旨在用于快速开发和简洁, 现实的设计。
6)Django的发音如何?
Django的发音为JANG-oh。 D在这里是沉默的。
7)Django如何工作?
Django可以分为许多组件:
Models.py文件:该文件通过将单行代码扩展为完整的数据库表并添加预建的管理部分来管理内容来定义数据模型。
Urls.py文件:它使用正则表达式捕获URL模式进行处理。
Views.py文件:这是Django的主要部分。实际处理发生在视图中。
当访问者登陆Django页面时, 首先Django检查你创建的URL模式并使用该信息来检索视图。在该视图处理请求之后, 如有必要, 查询数据库, 并将请求的信息传递给模板。
之后, 模板将以你创建的布局显示数据并显示页面。
8)哪个基金会管理Django Web框架?
Django Web框架由独立的非营利组织Django Software Foundation(DSF)管理和维护。基本的基本目标是促进, 支持和推进Django Web框架。
9)Django是否稳定?
是的, Django非常稳定。像Disqus, Instagram, Pinterest和Mozilla这样的许多公司已经使用Django多年了。
10)Django Web框架提供哪些功能?
Django Web框架中可用的功能包括:
- 管理界面(CRUD)
- 模板化
- 表格处理
- 国际化
- 会话, 用户管理, 基于角色的权限
- 对象关系映射(ORM)
- 测试框架
- 很棒的文件
Django的优点:
- Django是一个易于学习的Python框架。
- 它清晰易读。
- 它是多功能的。
- 写起来很快。
- 设计上没有漏洞。
- 它是安全的。
- 它是可扩展的。
- 它是多功能的。
以下是Django的缺点列表:
- Django的模块很大。
- 它完全基于Django ORM。
- 组件一起部署。
- 你必须知道使用它的完整系统。
Django中有三种可能的继承样式:
1)抽象基类:当你只希望父类的类保留你不想为每个子模型键入的信息时, 使用此样式。
2)多表继承:如果要对现有模型进行子类化并且需要每个模型都有其数据库表, 则使用此样式。
3)代理模型:如果你只想修改模型的Python级别行为, 而不更改模型的字段, 则使用此样式。
14)Django是内容管理系统(CMS)吗?
不, Django不是CMS。相反, 它是一个Web框架和一个编程工具, 使你能够构建网站。
15)如何在Django中设置静态文件?
在Django中设置静态文件需要完成三件事:
1)在settings.py中设置STATIC_ROOT
2)运行manage.py收集静态
3)在PythonAnywhere网页标签上设置静态文件条目
16)Django中中间件的典型用法是什么?
Django中中间件的一些用法是:
- 会话管理
- 使用身份验证
- 跨站点请求伪造保护
- 内容压缩
Django字段类类型指定:
- 数据库列类型。
- 呈现表单字段时可用的默认HTML小部件。
- Django管理员中使用的最低验证要求。
- 自动生成的表格。
Django-admin.py:这是Django的命令行工具, 用于管理任务。
Manage.py:这是每个Django项目中自动创建的文件。它是围绕Django-admin.py的薄包装。它具有以下用法:
- 它将项目的程序包放在sys.path上。
- 它将DJANGO_SETTING_MODULE环境变量设置为指向项目的setting.py文件。
信号是包含有关正在发生的信息的代码段。调度程序用于发送信号并侦听这些信号。
20)信号中的两个重要参数是什么?
信号中的两个重要参数是:
- 接收器:指定连接到信号的回调函数。
- 发件人:它指定接收信号的特定发件人。
为了处理URL, Django框架使用django.urls模块。
让我们打开项目的文件urls.py, 看看它是什么样子:
// urls.py
from django.contrib import admin
from django.urls import pathurlpatterns = [
path('admin/', admin.site.urls), ]
看, Django已经在这里为管理员提到了一个URL。 path函数将第一个参数作为字符串或正则表达式类型的路由。
view参数是一个视图函数, 用于将响应(模板)返回给用户。
django.urls模块包含各种功能, path(route, view, kwargs, name)是用于映射URL并调用指定视图的功能之一。
22)什么是Django异常?
异常是导致程序失败的异常事件。为了应对这种情况, Django使用其异常类并支持所有核心Python异常。 Django核心异常类在django.core.exceptions模块中定义。
23)Django异常类有哪些不同类型?
django.core.exceptions模块包含以下类
Exception | Description |
---|---|
在应用程序加载过程之前尝试使用模型时, 会引发该错误。 | |
DidNotExist异常的基类。 | |
如果查询不返回任何结果, 则会引发此异常。 | |
当请求的字段不存在时, 它将引发。 | |
如果只需要一个对象, 但返回多个对象, 则查询会引发此异常。 | |
当用户执行了从安全角度来看应视为可疑的操作时, 会引发此异常。 | |
当用户无权执行所请求的操作时, 将引发此错误。 | |
当请求的视图不存在时, 它由django.urls引发。 | |
如果在服务器配置中未使用中间件, 则会引发此错误。 | |
Django配置不当会引发ImproperlyConfigured异常。 | |
当模型字段存在问题时, 将引发此问题。 | |
当数据验证无法形成或建模字段验证时, 将引发此错误。 |
会话是一种在与Web应用程序交互期间将信息存储在服务器端的机制。默认情况下, 会话存储在数据库中, 并且还允许基于文件和基于缓存的会话。
25)Cookie在Django中的作用是什么?
Cookie是存储在客户端浏览器中的一小部分信息。它用于将用户数据永久(或在指定时间)存储在文件中。 Cookie具有其到期日期和时间, 并在到期时自动删除。 Django提供了内置的方法来设置和获取cookie。
set_cookie()方法用于设置cookie, get()方法用于获取cookie。
request.COOKIES [‘ key’ ]数组也可以用于获取cookie值。
from django.shortcuts import render
from django.http import HttpResponsedef setcookie(request):
response = HttpResponse("Cookie Set")
response.set_cookie('java-tutorial', 'srcmini.com')
return response
def getcookie(request):
tutorial= request.COOKIES['java-tutorial']
return HttpResponse("java tutorials @: "+tutorial);
Java OOP面试问题 |
Java字符串和异常问题 |
JDBC面试问题 |
JSP面试问题 |
休眠面试问题 |
SQL面试题 |
Android面试题 |
MySQL面试问题 |
ObjectDoesNotExist
空结果集
FieldDoesNotExist
返回的MultipleObjects
可疑操作
没有权限
ViewDoesNotExist
中间件未使用
配置不当
FieldError
ValidationError
Java基础面试问题
Java多线程问题
Java Collection面试题
Servlet面试问题
春季面试问题
PL / SQL面试问题
Oracle面试问题
SQL Server面试问题
推荐阅读
- 推荐!MS Excel面试问题汇总详解
- 最新数字营销面试题合集
- 高阶面试!云计算面试题合集都在这里了
- 移动开发!Android面试题合集最新推荐
- 如何解决无法打开Microsoft App Store(0x80131500)问题()
- Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko) Chrome/28.0.1500.72
- appium环境666
- Appium隐式等待和显示等待
- mpvue + Vant weapp + 微信云服务 打造小程序应用