【问题标题】:How to work with Front End developer when you use Django web framework?使用 Django Web 框架时如何与前端开发人员合作?
【发布时间】:2017-03-02 04:55:45
【问题描述】:

我是网络编程新手。所以我对概念很困惑。

我了解到前端开发人员和后端开发人员的职责不同,如下所示。

Front-End developer : html css js
Back-End developer : Django Web framework in Server

Back-End developer(Server -> Data) 
Front-End Developer(Data->html with css,js(JQuery,Angular..))

我了解 Django 框架是与前端耦合的。所以我想通过 django rest 框架发送数据,以便为前端和后端开发人员更清楚地(非耦合方式)划分职责。

我认为如果前端开发人员知道他们将获取页面(模板)或发送的数据信息(如下所示),他们可以使用html,css,js构建页面,而无需任何耦合的作品。

{ "id": { "type": "integer", "required": false, "read_only": true, "label": "ID"}
"title": { "type": "string", "required": true, "read_only": false, "label": "Title", "max_length": 200} ... }

但我很困惑。

例如:

您可以通过Get Method example.com/home.(JSON类型)获取用户列表 您需要在模板上显示此列表(使用 html、css、js 或 JQuery 或其他东西)。

如果你点击 example.com,urls config 用正则表达式找到正确的视图,然后像下面这样渲染模板

example.com/home -> Server -> url config -> views -> template(render)

urls.py

url(r'^home$'), something_view.as_view()

views.py

class something_view(generic form or something)
render(request, "something_template.html", Context)

something_template.html

要使用 django restframework 的序列化器, 您还需要通过 Serializer -> View -> Renderer。它会在观点上发生冲突。一个 url 和两个与之相关的视图...

您需要在 django 中显示模板,并且需要将 JSON 数据发送到模板以在 django restframework 模块中显示用户列表。你怎么能这样做?

在 Django 框架中,前端开发人员和后端开发人员如何在没有太多耦合任务的情况下工作?

嗯,这可能是一个荒谬的问题。但我对自己缺乏知识感到很困惑。我自己也搞不清楚。

感谢您阅读我的问题!

【问题讨论】:

  • 我不太清楚你在问什么,但我还没有遇到必须做一些前端工作的后端开发人员。它的工作方式与翻译相同,如果您愿意,您可以给某人一个大纲或“模板”,然后他们填写空白。虽然,我们的“前端人员”也负责后端的工作。无论哪种方式,这听起来都将取决于公司/资源。
  • @Sayse 嗨。当您与前端开发人员一起工作时,我的问题会像我对工作流程的困惑一样令人困惑。首先,Django 有自己的模板引擎。如果您使用 django.form,您只需将模板语法 {{ form }} 放入 html 中。前端开发者不知道它是什么以及如何用 html、cs、js 制作首页。
  • 我认为如果您使用许多必须由 django 模板引擎呈现的模板语法,那么它与前端开发人员的工作非常耦合。所以为了防止与前端开发人员的合作,我认为最好的选择是只发送 JSON 数据。前端开发者知道它是什么数据类型、名称等要求。然后他们可以用自己想要的方式用 html、css、js 制作首页,而无需与后端开发人员进行太多沟通。
  • 我将使用 django restframework 模块。所以 django restframework 将是 REST API。但我很困惑我可以在一台服务器上同时使用 restframework 和 django web 框架。我的问题变得更清楚了吗???我希望如此!
  • @Jayground 您似乎对如何将后端与前端分离有些基本的混淆。首先,绝对只需要使用 django 模板来呈现您的前端。您可以使用 DRF 轻松创建 api 端点以获取数据并将其放入数据库中,并且仅使用 drf 执行此操作,并且就您的前端而言,它所需要的只是可以从中获取数据或发送的确切 url数据到。接下来,如果您真的想使用 django 部署前端,请创建一个单独的应用程序来托管前端,因为一个 url 永远不能指向两个视图。

标签: python django django-rest-framework frontend backend


【解决方案1】:

不确定您的实际问题是什么,但就其价值而言,在现代前端开发中,前端通常是一堆静态文件(Javascript、HTML、CSS 等等)。所以通常根本不需要 Django 模板。我现在正在做的项目只使用 Django 模板 API 来生成电子邮件。

因此,您使用 Django 模型 API 定义模型,然后定义序列化程序以在 python 对象和您选择的数据格式(JSON、XML 或其他)之间进行转换,然后为 API 端点定义视图。前端使用这些 API 来保存和检索数据。像 Django REST Framework 这样的库对这个过程有很大帮​​助。

【讨论】:

  • 嘿!感谢您的回答。是的,我的问题肯定是模棱两可的。因为我自己也很困惑。感谢您的评论和回答,情况越来越清楚。到目前为止,我是这样理解的。假设我想同时为前端和后端开发人员使用 Django Web 框架。我首先制作 Django 框架。我为每个视图编写 url,然后这些视图呈现模板。我没有在模板中使用任何 django 自己的模板语法,例如 {% tag %}、{{ value }} 以及任何 django 模板引擎翻译和前端开发人员不知道的内容。
  • 然后,我在 django 中制作新应用程序并使用 djangorestframework 模块制作序列化器,并编写 url 和视图以作为 REST API 工作。所以有一部分用于根据 url 查看(渲染)html 模板,一部分用于同时在一个 django web 框架中作为 REST API 工作,但在 Django 中作为不同的应用程序。
  • 我希望到目前为止是正确的。如果是这样,那么,作为前端开发人员,如果您知道每个模板的每个 url 和 JSON(或其他)数据格式,那么可以独立于后端开发人员工作吗?我的意思是你可以直接通过SFTP上传html文件(静态文件包括图片、css、js等)。后端开发人员制作了所有目录结构。只有前端开发人员可以替换指定文件夹中的静态文件。
  • 前端开发人员甚至不需要知道您正在使用 Django。他们不在乎。他的代码进行 API 调用并获得响应。只要他知道要调用哪些 API 来对系统做他想做的事,他应该没问题。
  • 知道了!谢谢!
【解决方案2】:

您几乎可以将前端与后端完全分开。

在我们的项目中,我们有一个包含 Angular、CSS 等的客户端文件夹,以及一个包含 Django 和 DRF 的服务器文件夹。

前端人员必须接触的唯一后端文件是 1) 用于加载初始页面的 Django 索引模板,2) 包含每个 JS 文件的 javascript 模板,以及 3) CSS包含 CSS 文件的模板。

实际上他只接触过 javascript 模板,而且只是在他添加新的 JS 文件时。

【讨论】:

  • 感谢您的回答!我知道了。因此,如果我作为后端开发人员工作。我用 Django 和 DRF 编写所有代码。例如,如果您在 Web 浏览器中点击“example.com/home”,它会显示空模板,例如 empty template。与视图对应的每个 url 都显示每个空模板。你有 DRF 的 REST API 地址。您可以将一些数据列表作为 JSON 获取,甚至可以通过 DRF 发布(或更新)。我为以上所有内容编写代码。
  • 最后,前端开发者知道他们需要将静态文件(html,css,js)和API urls放到GET或POST的位置,最后知道每个页面的数据格式。您可以只替换指定文件夹中的文件(静态文件)并从 urls 中检查。
  • 如果我理解正确的话,前端开发人员独立于后端开发人员工作似乎就足够了???当然,您将获得基本的页面结构(每个页面的设计)。您可以使用 html js css 以您想要的方式构建该设计,
  • 只是前端开发人员(HTML、CSS 以及一些使用 jQuery 或类似的基本 JS)的人很可能只会接触 Django 模板文件夹中的项目。如果前端人员想使用 Angular 或 React,那么后端人员将使用 Django-Rest-Framework (DRF) 之类的东西与 Angular 对话。
  • 我明白了。谢谢。现在我可以理解与前端开发人员合作的概念,我需要通过亲自与他们合作来填补我仍然不确定的东西。
猜你喜欢
  • 1970-01-01
  • 2013-02-26
  • 2011-09-22
  • 1970-01-01
  • 2021-03-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多