📜  Django 面试问答以及面向初级开发人员的实用技巧

📅  最后修改于: 2022-05-13 01:54:27.108000             🧑  作者: Mango

Django 面试问答以及面向初级开发人员的实用技巧

姜戈… 这不是你最喜欢的框架吗? (特别是如果你是编程世界的新手)

是的!这是…

你有没有尝试学习这个框架并构建一些项目?

如果答案是肯定的,那么这里是下一个问题……

你了解项目的完整流程吗?

如果答案是肯定的,那么这里是另一个问题(现在不要生气......哈哈......)

你能用你自己的话来表达你从项目中学到的概念吗?

如果答案再次是肯定的,那么恭喜你,你不需要阅读大量关于 Django 面试问题的文章......你只需要看看这些问题,答案就会自动出现在你的脑海中。

这个框架是行业中最流行的框架,这也是大多数人跳入它的原因(当然钱是另一个因素)。如果您是一位经验丰富的开发人员,那么您肯定会检查其流行背后的原因,为此,您将检查 Django 可以在应用程序中解决哪些问题?为什么它比其他框架更好,或者为什么在 Django 上构建应用程序很好?



Django-Interview-Questions-Answers-With-Practical-Tips-For-Junior-Developers

如果您已经投入精力构建一些项目并了解该框架的概念,那么您只需要申请合适的工作并面对面试即可。

现在来到这个博客的主标题,我们将讨论一些你在面试中可能会遇到的 Django 面试问题,但在我们继续之前,我们建议你仔细阅读下面给出的内容。

快速说明!

如果您只是在寻找面试问题,并且相信阅读这些问题并记住它们的答案将有助于您通过面试,那么我的朋友,当您面临面试时,这将行不通。

永远记住,面试官更愿意聘用具有实践经验并能够解决 Django 应用程序中问题的候选人。很可能他们不会雇用来参加面试的人,在没有任何实际经验的情况下阅读大约 20-30 个 Django 面试问题。

只阅读 30-40 道面试问题(任何语言或框架)并在没有任何实际经验的情况下面对面试在软件开发中是行不通的。因为在那里你不会被要求为一些理论考试写论文。

在那里你必须构建实际的软件,在这种情况下,无论面试官会问什么样的问题,他/她的唯一目的都是检查候选人对框架的理解能力,对框架的理解能力概念,关于对事物如何连接的理解,关于对框架完整流程的理解。

你可以先阅读理论,阅读问题,然后构建一些项目,或者你可以构建一些项目,然后阅读理论和面试问题。但这里的整个想法是两者都做……不要错过任何一件事。



现在让我们开始讨论面试问题……

我们还将讨论面试官正在寻找什么样的答案或他/她为什么问一个特定问题。

姜戈面试问题

无论我们要在这里讨论什么问题,不要期望每次面试都会出现相同的问题。不是每次面试都会是一样的。问题可能会有所不同,具体取决于参加面试的人。但是是的,这些是最基本的问题,也是最常见的问题,我们考虑到初级 Django 开发人员的职位,整理了这个问题。

面试中很可能会问这些问题,以检查候选人至少对框架有基本了解的能力。在申请工作之前,请确保您在投资组合中提及该项目。提及您使用这个惊人的框架在项目中所做的事情。您构建了哪些功能,或者您解决了哪些问题。这将使您深入了解您对这个框架的理解程度。

面试官不想进行问答环节。他/她会尝试与您建立关系,并且他/她会尝试了解您。所以,如果面试官问的是这个项目或者你目前正在做的事情,那么请平稳地谈论它并尝试控制面试。扩展您的答案并深入了解细节,而不仅仅是给出是或否的答案。

不要在面试中作假。与面试官建立融洽的关系,并将您的面试官视为团队成员或导师,他将在未来与您一起开展某个项目。当您深入了解项目的细节时,面试官会了解您已经知道的事情。您只需限制自己的问题数量,面试官就不会问他/她列表中的 50 个问题。

如果你被某个问题困住了,那么不要给出错误的答案,只要让面试官知道你是否对这个项目有任何了解。你可以说“我在我的项目中已经这样做了,但事情只是空白。我不记得确切的命令是什么,但我认为它是这样的“.现在您可以尝试详细说明这些问题。对面试官来说完全没问题,不会给人留下任何负面印象。

现在让我们从问题开始……

1. 你对Python 的熟悉程度如何?

注意:面试官正在寻找一些先决条件。他/她想知道你的Python技能。您对它的熟悉程度以及您对Python做了什么。他不会花太多时间在这上面,但显然,如果您是 Django 开发人员,那么您将需要知道这一点。



回答:让面试官知道你上过什么课程,你做过什么样的项目,你在这门语言上扩展了多少。书籍和其他资源等。

2.什么是姜戈?

注意:从这里面试官将深入了解细节,他/她将尝试了解您对 Django 的了解程度。当然,这个问题也取决于你如何解释你的作品集中提到的 Django 项目。如果面试官怀疑你对 Django 的了解,那么他/她肯定会抛出这个问题。

答: “Django 是一个基于 Python 的 Web 框架。就像我们使用 ExpressJS 或 NodeJS for JavaScript 和 Laravel for PHP来构建应用程序的后端部分一样,Django 用于Python也是出于同样的目的”。不限于给出相同的响应,但此响应将阐明您知道“什么是框架”。如果你在回答中提到几个框架,那么面试官就会明白你知道框架的概念,不需要深入了解框架的概念。

3. 你可以用 Django 构建什么?

注意:基本上面试官希望得到的答案是你知道 Django 的能力。您了解 Django 的用途。通常,人们举的例子是 Django 可用于构建社交媒体网络、电子商务网站,但如果您想获得良好的反响,请提及一些公司的名称。

回答: “Django 功能是任何东西,像 Udemy、Pinterest、Instagram、Dropbox 这样的公司都在使用它。”面试官会明白你了解 Django 并且你知道它有很多能力。您正在了解已完成的操作以及它可以执行的操作。您还可以提及 API 以及 API 如何帮助构建一些好的应用程序。

问题的正确解释。 4和5真的很重要。如果您无法解释 Django 是什么以及它能够做什么,那么面试官会担心。

从这里面试官可能会深入了解细节,他/她会快速提出一些问题,以确保您已经解决了这些问题。你不只是听说过这个框架,或者你没有做过任何死记硬背的学习。面试官在这里会很轻率地判断,因为没有人记得每个命令或开发中的确切代码。大多数人只是谷歌搜索出来的东西并解决问题。但是你应该记住Django中最基本的命令或最基本的东西。

4. Project 和 App 有什么区别?



注意:在您的答案中包含示例以区分两者。

答案:“一个项目就像一个整体 环境。它是您网站的基础,而应用程序就像是该网站的一个组件,用于保存项目逻辑。项目就像您网站的配置,而应用程序是您项目的组件,它被创建来在您的应用程序中执行特定的操作。

一个项目由许多应用程序组成,因此一个项目可以有 n 个应用程序,一个应用程序可以在多个项目中。”在这里,您可以给出 facebook.com 的示例并将其结构化以更好地解释它。 Facebook 将被视为一个项目,而新闻提要、个人资料、群组是整个 Facebook 中不同应用程序的组成部分。

所以对于不同的任务,一个项目可以分为各种小应用程序,这些应用程序专注于特定的功能区域。

项目和应用程序

5.我们如何初始化一个项目?

答案: $ django-admin startproject projectname

6.我们如何初始化一个应用程序?

答案: $ Python manage.py startapp appname

7、settings.py文件有什么作用?



注意: settings.py 是项目中最重要的文件,它包含应用程序的所有配置。对 settings.py 文件给出最好的解释。面试官会检查你对 Django 的技术理解。

答: settings.py 包含项目的配置,例如数据库连接、应用程序配置、绝对路径值、静态文件配置以及项目的整体命令中心。

8. 我们如何启动我们的开发服务器?

答案: $ Python manage.py runserver

9. Django中的MVT结构是什么?什么是模型?什么是视图?什么是模板?

答:模型是数据库表的基于类的表示。它代表数据库结构。

视图基本上是业务逻辑,不处理 如何 数据看起来(就像在 MVC 结构中一样)。它代表了数据的实际情况。 View 决定当特定的 URL 被点击时应该触发什么数据需要返回的内容,如模板、响应等 基本上,视图返回模板,它是模型和模板之间的连接。

模板层返回 HTML 布局它处理响应的呈现部分。响应将如何呈现给用户。

有了这个答案,面试官就会看到你对模型、视图和模板的理解。

10. 什么是 Django 管理面板?

注意:这是 Django 的关键特性之一,所以面试官可能会向你提出这个问题。  

答: Django 管理面板是一种用于管理任务的图形用户界面。默认情况下,管理面板是用 Django 构建的,您不需要像我们在其他语言中那样从头构建它。您可以快速设置管理面板来管理您的数据并访问它。开发过程变得更快,并且开发人员执行管理活动也变得容易。

11. 什么是 URL 模式?

注意:这是你绝对应该知道的 Django 中的另一个基本内容。面试官想知道你是否了解如何在 Django 应用中配置 URL。

回答:正确解释路由如何使用 URL 模式在 Django 中工作。

URL 决定网站路由。我们在应用程序中创建一个Python模块或一个文件urls.py。该文件决定了您网站的导航。当用户在浏览器中点击特定的 URL 路径时,它会与 urls.py 文件中的 URL 匹配。之后,检索相应的视图方法,然后用户获取对所请求 URL 的响应。

12、下面的命令有什么作用?

  • Python manage.py makemigrations
  • Python manage.py 迁移

注意:这是 Django 中的另一个基本内容。您只需要解释这两个命令在 Django 应用程序中的作用。

答: makemigration 命令扫描应用程序中的模型,并根据我们在模型文件中所做的更改创建一组新的迁移。该命令生成SQL命令,执行该命令后我们得到一个新的迁移文件。运行此命令后,不会在数据库中创建表。

现在要在我们的数据库中应用这些更改,我们执行 migrate 命令。 migrate 命令执行 SQL 命令(在 makemigrations 中生成)并强制对数据库进行更改。运行此命令后将创建表。



13.我们在哪里存储模板?

答:有多种不同的方式来存储模板。我们可以将其存储在默认应用程序中 结构体。 Django 应用程序通常会告诉您将其存储在名为 templates 的文件夹中的子文件夹中(无论您的应用程序名称是什么),然后您就可以将所有模板放在那里。您还可以手动将此值分配到 settings.py 文件中。在此文件中,您将找到一个变量“模板”,在此变量中,您将找到一个名为 DIRS 的列表。在这里,您可以提及模板的路径,并让 Django 知道在哪里可以找到它们。

14. Django 模板语言:双花括号是什么意思,百分号是什么意思? (面试官可能会举一个例子)

{{name}}

注意:面试官想知道你非常了解如何使用模板。你对它有一个很好的理解,你知道如何传递数据,然后在模板中设置变量。

答:花括号只是变量的占位符。这样我们就可以输出动态数据。带百分号的花括号是我们可以在模板中编写后端 Pythonic 逻辑的代码块。现在您可以在此处编写示例之一。您可以在模板的代码块中编写 for 循环或 if 语句。

{% for customer in customers %}

   {{customer.name}}

{% endfor %}

15. 如何在应用程序中包含和继承文件?

答:“使用include标签,我们可以包含另一个 HTML 模板的部分”。对继承和扩展的正确解释是“如果我们有一个 main.html 文件,并且我们需要继承这个文件,那么我们可以在模板中我们想要扩展它的地方使用extends标签,然后我们可以在块中添加标签来扩展模板。” (阅读文章 Django 模板标签来详细阐述你的答案)

{% extends 'base/main.html' %}
{% include 'base/navbar.html' %}
{% block content %}
     

Template

{% endblock content %}

16. 你更喜欢使用什么数据库系统,我们如何在 Django 应用程序中设置数据库?

注意:默认情况下,Django 自带 SQLite 数据库,但在现实生活中,公司不会使用它。所以在这里面试官想听听你知道一些 SQLite 数据库系统之外的东西,你不只是依赖默认的数据库系统。您还了解如何连接另一个数据库,如 MySQL 或 PostgreSQL。提及您可以在 Django 项目中配置数据库的位置。

答:我们需要在 settings.py 文件中配置我们的数据库。默认情况下,那里提到了 SQLite,我们需要相应地更改此设置。您还可以举一个设置像 MySQL 或 PostgreSQL 这样的数据库的例子。



17.什么是静态文件?

答:这是我们存储附加文件的地方,如 CSS 文件、JavaScript 文件、图像或任何类型的静态文件。我们通常将它们存储在单独的文件夹中,例如在js文件夹中,我们存储所有 JavaScript 文件,在图像文件夹中,我们存储所有图像。我们将这些文件存储在名为static的项目应用程序的子目录中

18. 什么是媒体根?

答:媒体根用于上传用户生成的内容。我们可以从 MEDIA_ROOT 提供用户上传的媒体文件。

19. 如何查询数据库表中的所有项目?

答案: XYZ.objects.all()其中 XYZ 是在模型中创建的某个类。

20.如何从数据库表中查询一项?

答案: XYZ.objects.get(id=1)其中 XYZ 是在模型中创建的某个类。

注意:我们刚才提到了两个数据库查询问题的例子,但面试官可能会问更多的问题。他/她可以向查询添加更多复杂性,然后您将不得不回答它。因此,请准备好在 Django 中进行更多的数据库查询。

21.什么是CSRF代币?

答: CSRF 令牌有助于抵御跨站点请求伪造攻击。这可以从恶意站点发送。 Django 自带 对 CSRF 的保护。我们可以在 post、put 或 delete requests 中使用它。我们通常将这些与我们的表格一起发送。简而言之我们只是保护我们的数据免受任何类型的恶意活动。我们可以在模板的表单中包含{ % csrf_token % }以保护我们的数据。

22. HTML/CSS/Bootstrap 技能水平?

注意:这是另一个前提问题,因为在开发中您肯定会遇到 HTML 和 CSS 中的代码。您将不得不使用 Django 动态处理它。所以面试官想检查你对两者的基本了解。

回答:同样,如果你已经构建了一些项目,那么让他们知道你在 HTML 和 CSS 中做了什么,或者你是如何动态处理它们的。如何构建页面或模板以及如何在应用程序中使用 Django 对它们进行编码。您还可以通过提及您在 HTML 和 CSS 中设计的模板或页面类型以及您如何动态呈现它来扩展答案。

23. 你做过 JavaScript 吗?有这方面的经验吗?

注意:如果您不了解 JavaScript,那么面试官很可能不会为此与您对接,但是如果您在 Django 中构建项目时已经处理过它,那将是一个很好的加分项。作为一名 Web 开发人员,您将经常使用 JavaScript,并且拥有这方面的先前经验会给您带来一些优势。如果您不知道,那完全没问题,但 JavaScript 的知识会增加被选中的机会。

答:如果你懂 JavaScript,那么让面试官知道你在 JavaScript 中做了什么,或者你在 JavaScript 中内置了哪些特性以及 Django。

最后的想法

Django 的面试问题不限于此。有很多概念需要了解,但最重要的是你在投资组合中提到了什么以及你在项目中做了什么。您会从那里找到大多数问题。它还取决于面试官、公司名称、工作性质以及您申请的职位。构建项目,面对问题,解决问题,你会学到更多关于Django的知识。这就是你如何为 Django 面试问题做好更充分的准备。