注意:我读了Choosing between Stack Overflow and Software Engineering并且从我的结论开始,因为这篇文章包含了代码,我认为它属于stackoverflow而不是程序员。
嗨,我在Django中构建了一个应用程序,而且我对Django很新。我已经阅读了Django教程和Django-Rest-Framework教程。
我的问题是我应该如何构建我的应用程序的这一部分。现在我正在尝试为我正在编写的Android应用程序构建一个RESTful api。
我读过这个:
Why does django enforce all model classes to be in models.py?
和
models.py getting huge, what is the best way to break it up?
让我的项目进入透视:
这是我的models.py的样子:(注意这些不是我的实际模型,它们只是我为保持代码更简洁所做的一个例子)
class Company(models.Model):
name = models.charField(max_length=100)
class Department(models.Model):
company = models.ForeignKey(Company)
employees_count = models.IntegerField(default=1)
name = models.charField(max_length=100)
class Employee(models.Model):
department = models.ForeignKey(Department)
name = models.charField(max_length=100)
age = models.IntegerField(default=0)
每个相应的类都可以通过API访问自己的函数。
在我的项目介绍之后我的问题是..公司,部门和员工是否都属于不同的包,因为它们是独立的实体?或者它们是否都属于一个模型文件?最后,他们应该拥有自己的REST类,如下所述:http://www.django-rest-framework.org/tutorial/3-class-based-views#rewriting-our-api-using-class-based-views
答案 0 :(得分:1)
Django对这两种方法都很好。在Python中,与其他语言不同,您可以在同一文件中放置多个类定义。通常,Django应用程序将其所有模型放在同一个文件中,如果它不会太长,说2-3个屏幕。
任何更长的时间,它们通常放在models
模块中并分成不同的文件。需要在第一个链接中提到的__init__.py
中提及每个模型。在Django 1.7中,最后一个app_label
"技巧"提到不再需要了。