Bra*_*ant 22 django django-views
这实际上只是一个"最佳实践"问题......
我发现在开发应用程序时,我经常会得到很多观点.
通常的做法是将这些视图分解为多个视图文件吗?换句话说......而不仅仅是拥有views.py,是否常见于views_1.py,views_2.py,views_3.py(但更合适,可能按类别命名)?
res*_*dsk 33
views.py
您的大多数代码可能希望您的视图可以访问myapp.views.viewname
.我看到人们分解他们的观点但保留这个python名称的一种方法是创建一个views/
目录. views/__init__.py
将有:
from .foo_views import *
from .bar_views import *
from .baz_views import *
Run Code Online (Sandbox Code Playgroud)
然后,在views/foo_views.py
,放,:
def foo_detail(request, ...):
# your code here
def foo_list(request, ...):
# your code here
def your_other_view(...):
# ...
Run Code Online (Sandbox Code Playgroud)
所以你把所有东西从views.py
这个目录中移动到文件中,制作__init__.py
,删除views.py
,然后你就完成了.
然后,当你import myapp.views
,myapp.views.foo_detail
将参考你定义的功能views/foo_views.py
.
这个策略也应该可以正常使用admin.py
等等.但是如果你想这样拆分models.py
,你需要添加app_label = 'your_app_name'
到class Meta:
所有模型中.例如,unicorn_app/models/unicorns.py
可以有这样的条目:
class Unicorn(models.Model):
description = models.CharField(max_length=80)
class Meta:
app_label = 'unicorn_app'
Run Code Online (Sandbox Code Playgroud)
(否则,Django想象该Unicorn
模型是名为"models"的Django应用程序的一部分,这会混淆管理站点.当前通过1.6 - 即将发布的1.7版本将删除此要求.)
归档时间: |
|
查看次数: |
5042 次 |
最近记录: |