作者uranusjr (←这人是超级笨蛋)
看板Python
标题Re: [问题] Django site的首页与登入页面该放哪边?
时间Sat Apr 27 00:13:49 2013
※ 引述《NewSpec (新规格)》之铭言:
: 最近在试着用Django做一个网站
: 这个网站主要有两大功能, 会以app的方式制作
: 但现在比较疑惑的地方是:
: 首页以及登入的template和view该放哪边?
: 我目前的project layout是这个样子:
: <project_name>/
: - manage.py
: - requirements.txt
: - <project_name>/
: - __init__.py
: - settings.py
: - url.py
: - wsgi.py
: - <app1>/
: - <app2>/
: 当然, 网站里面关於两个网站的功能当然就透过 app1/ 和 app2/ 存取
: 但像首页这种东西呢? / 以及 /index
: 还有注册与登入页面 /signup 和 /login
: 我该把它们组织到专案的哪边呢? 是<project_name>目录下吗?
: 或者开一个名叫"general"的app来放这些与site相关而与个别app功能较无关的view?
: 请大家能给予一些指导, 谢谢:)
这问题问 10 个人可能会有 11 个答案XD
基本上你高兴就好, Django 不管, 其他人大概也不会管
我个人习惯的 layout 是这样
<project_name>/<project_name>/ 各 app module
这一层放有的没 这个目录是版 urls.py
的东西, 例如 本控制的 root views.py
IDE 的档案, directory templates/
static 和 wsgi.py
media 目录等 manage.py
settings.py
所以首页的 view 就会在第三层的 views.py
Template 当然就是在同一个目录的 templates
我也有看过有人是把 <project_name> 和其他 apps 放在同一级, 这样也是合理
还有另外一派比较极端的是认为首页应该特殊处理
这类人的首页没有自己写的 view logic, 只用一个 TemplateView.as_view
首页 template 的位置是用 settings 里的 TEMPLATE_DIRS 来找
然後页面里的所有东西都靠 template tags 来处理
(各 tag 的位置视功能塞到各个 app 里面)
不管你用哪一种方法, 其实增加一个 core app 都会是个好主意
把一些共通的底层逻辑独立出来, 不要每个 app 互相引用来引用去
最好有个明确的主从架构, 这样也可以帮助避免 circular import 的问题
--
「我最想要的同伴嘛,首先是要笑口常开,其次是我们能永远不会发生误会。
如果这些都能办到的话,嗯,如果他是世界上第一流的桥手,也还不错。」
-- 班尼多‧加罗素,前义大利蓝队成员
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 114.32.81.146
※ 编辑: uranusjr 来自: 114.32.81.146 (04/27 00:37)