我是网络编程的新手。所以我对概念很困惑。
我了解前端开发人员和后端开发人员的职责如下所示。
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 type)获取用户列表 你需要在模板上显示这个列表(用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 - >查看 - >渲染器。它会在观点上发生冲突。一个网址和两个与之相关的观点...
您需要在django中显示模板,并需要将JSON数据发送到模板以显示django restframework模块中的用户列表。你怎么能这样做?
前端开发人员和后端开发人员如何在Django Framework中没有太多耦合任务的情况下工作?
嗯,这可能是一个荒谬的问题。但我对自己缺乏知识感到非常困惑。我无法弄清楚自己。感谢您阅读我的问题!
答案 0 :(得分:2)
Not sure what your actual question is, but for what it is worth, in modern frontend development generally the frontend is a bunch of static files (Javascript, HTML, CSS and whatnot). So there is usually no need for Django templates at all. The project I am working on right now only uses Django template API to generate email messages.
So you define your models using Django model API, then define serializers to convert between python objects and your data format of choice (JSON, XML or whatever), then you define views for your API endpoints. And the front end uses these APIs to save and retrieve data. Libraries like Django REST Framework help the process quite a bit.
答案 1 :(得分:1)
您几乎可以完全将前端与后端分开。
在我们的项目中,我们有一个包含Angular,CSS等的客户端文件夹,以及一个包含Django和DRF的服务器文件夹。
前端人员必须触摸的唯一后端文件是1)用于加载初始页面的Django索引模板,2)包含每个JS文件的javascript模板,以及3)CSS包含CSS文件的模板。
实际上他只触及javascript模板,而且只有当他添加一个新的JS文件时才会这样。