我是Django Rest框架的新手,我想开发API调用。
我目前使用的是Mysql数据库,所以如果我必须对数据库进行更改,我是必须在我的项目中编写模型,还是可以在我的数据库上执行原始数据操作。在
比如:
这是我的网址.py包含一个URL列表的文件,如果有任何一个URL被命中
它直接调用视图.pyfile和rest我在该函数中执行特定的操作,比如连接到MySQL数据库,执行SQL查询并将JSON响应返回到前端。在
这是进行API调用的好方法吗?如果没有请指引我。在
任何建议或帮助将不胜感激。在
Tags:
你不需要使用模型,但你真的应该。django的ORM(它处理数据库读/写的方式)功能非常棒,非常有用。在
如果您一直在执行原始sql语句,那么您要么遇到了django函数失败的非常具体的情况,要么您使用django效率低下,应该重新考虑一下为什么首先使用django。在
为什么要使用Django而不使用ORM访问数据库?大多数情况下,ORM的工作方式与您预期的一样,甚至允许您执行如下搜索:
然后执行如下查询:
^{pr2}$这是一样的,但比:
更短,更易于维护。在
现在,谈到Django Rest Framework和Django:尽管后面对Django和DRF的修改都涉及到了,但是不能突然期望在父对象是父对象的同时创建嵌套对象(例如Foo是父对象,而Bar是嵌套的),就像关系管理器(Django)和create/update方法一样
ModelSerializer
类,您仍然可以相信Django可以通过使用它而不是SQL来节省时间、精力和生命。在我给你举一个关于DRF的例子。我们假设这里只涉及Foo模型。你喜欢哪一个?在
或者。。。在
后一个代码未经测试,仅用于理论目的。它非常不安全,不打算在生产中执行,因为这是个坏主意
我宁愿用最短的方法。在
我的结论是:学习ORM!如果因为数据库已经存在而需要尊重它,那么可以使用
managed
模型。但总是。。。使用ORM和Django和DRF提供的特性。在Django REST框架是为与Django框架一起工作而设计的。Django-ORM是Django框架不可分割的一部分。当然,在不使用ORM的情况下使用Django和DRF是可能的,但是您将基本上是在与框架抗争,而不是使用框架来帮助您。你有三种基本方法。在
如果您只想在python中开发restfulapi并从现有的MySQL数据库中提取数据,或者您没有数据库,但您想要一些简单的东西。您可以使用与框架无关的东西,比如不安的(http://restless.readthedocs.io/en/latest/)甚至拥抱(https://github.com/timothycrosley/hug)
如果您没有任何现有数据,并且想要一个完整的web框架,那么您应该考虑使用Django(我以Django开发人员的身份为生,这一点也不丢人),并接受ORM。在这种情况下,DRF是目前Django更好的REST框架之一。
如果您有现有的数据库并且不知何故坚持使用Django,有一些方法可以将Django ORM用于现有数据,您应该查看主题为(https://docs.djangoproject.com/en/1.9/howto/legacy-databases/)
相关问题 更多 >
编程相关推荐