我想用Django框架构建一个项目,它包括网站和移动应用程序,网站是基于Django模板构建的,移动应用程序需要rest。我怎样才能只用一份源代码来完成它呢?
换句话说,我可以创建一个项目,其中有几个django应用程序,它支持为移动应用返回呈现模板和json?
我知道我们可以在网站中使用Django,然后使用Django- rest -Framework构建网站和移动应用程序访问Rest api。但是我不知道角JS,也没有时间去学习它。
请帮帮忙。
发布于 2016-01-06 07:01:19
如果您利用header的功能,特别是“Content”标头(HTTP1.1报头规范),这是很容易实现的。
我个人使用它的方式如下:
def my_view_name(request):
if 'CONTENT_TYPE' in request.META and \
request.META['CONTENT_TYPE'] == 'application/json':
return HttpResponse(
json.dumps({"foo":"bar"}),
content_type='application/json'
)
else:
return render_to_response(
'sometemplate.html', context
)上面的代码是django特有的。
它允许您根据客户端传入的内容来控制服务器发出的响应类型。它可以通过检查Content-Type头来检测是否需要JSON响应。只需确保移动应用程序在将Content-Type头设置为application/json的情况下发出HTTP请求
希望这是你想要的。
发布于 2016-01-06 06:49:10
你可以在一个项目中完成。有相同的模型,但对网站和REST-api有不同的看法.
发布于 2016-01-06 06:49:24
您可以构建一个通用后端来服务您的数据。
您可以不使用Django-rest-Framework(而不必使用角)来完成这一任务。你只需要调用后端的url。
比如..。假设后端代码运行在127.0.0.1/8000,需要获取用户的详细信息,只需从移动应用程序或任何其他前端调用url 127.0.0.1:8000/ get _user_ details /。
并且,请养成形成/安排数据的习惯,用不同的功能编写,这样移动应用程序和网站都可以重复使用。
### For browser website written in DJANGO (served in template by django):
def user_details_page(request):
get_user_details(someid) #### returns json of user details
render in template
#### And for the mobile App you could use **get_user_details(someid)** just to get json data.
def get_user_details(someid):
###do watever
return json ## of user details您也可以使用Django Rest框架(不必使用角),它给您提供了很多稳定性。
或者,您可以在Django框架中设置一个全新的后端,为移动应用程序提供数据服务。
https://stackoverflow.com/questions/34625585
复制相似问题