mit*_*chf 41 python django structure
实用功能应该放在哪里Django?自定义加密/解密数字,发送推文,发送电子邮件,验证对象所有权,自定义输入验证等功能.我在我的应用程序中的许多地方使用的重复和自定义的东西.我现在肯定会打破DRY.
我看到了一些在models.py中定义函数的演示,虽然这在概念上对我来说似乎并不合适.他们应该进入导入我项目的"实用程序"应用程序吗?如果是这样,他们在实用程序应用程序中的位置?那里的models.py文件?
感谢您帮助这个n00b.
更新:让我更具体一点.假设我需要一个函数"light_encrypt(number)",它取param"number",乘以7,加10并返回结果,另一个函数"light_decrypt(encr_number)取param"encr_number",减去10,除以7并返回结果.在我的Django树中我会把它放在哪里?这不是中间件,对吧?正如Felix建议的那样,我是否创建了一个python包并将其导入我需要这些函数的视图中?
eru*_*orm 23
不同的问题但相同的答案:
我常用的django网站布局是:
Run Code Online (Sandbox Code Playgroud)projects/ templates/ common/ local/
哪里:
- 项目包含您的主项目和任何其他项目
- common包含您可以跨站点共享的内容,或者至少不是特定于项目的内容,例如,如果您需要下载django-profile和django-registration而不是直接在python/site-packages中
- 模板只包含那个
- local包含特定于当前计算机的内容,以便您可以正确分离数据,例如数据库位置和密码 - 然后我将软件链接特定于机器的版本(比如"machine1-localconfig.py")到local/localconfig.py然后可以在settings.py中"导入localconfig"
- 我通常把项目特定于项目的中间件放在项目中,而中间件不是特定于项目的共同/中间件/
- 确保将templates目录添加到设置中的正确位置(或者很可能是localconfig.py,然后在设置中导入它),并确保将项目,公共和本地目录添加到PYTHONPATH.
mit*_*chf 14
好的,在阅读完评论并回答这里后,我决定在我的项目目录中创建一个名为"common/util /"的目录.在其中我有一个文件"__ init__.py",我有我的小助手功能.
我想如果文件太大,我会将这些函数拆分成单独的.py文件.所以现在,我的项目结构看起来像这样.如果我做出任何糟糕的选择,请更正,我在开发中已经足够早,我现在可以解决它,但仍然很容易做到!
myproject/ (Django project)
common/
util/
__init__.py (helper functions)
middleware/ (custom middleware)
templates/ (project templates)
myapp/
fixtures/ (initial data to load)
migrations/ (south migrations)
urls/
views/
admin.py
forms.py
models.py
test.py
public/ (static stuff not served by Django)
media/
css/
img/
js/
lib/
Run Code Online (Sandbox Code Playgroud)
这是另一种方法:
如果实用程序功能可以是一个独立的模块,并且您正在为 django 应用程序使用 virtualenv 环境,那么您可以将该功能捆绑为一个包并将其安装在您的 virtualenv 中。
这使得在 django 应用程序中任何需要的地方都可以轻松导入。
这取决于这些功能是特定于项目还是应用程序。
其他答案已经解决了将其放置在项目特定功能的位置。common
更准确地说,在项目根目录中名为的文件夹中。
如果我们谈论特定于应用程序,那么我只需将其放在应用程序内部名为 的文件中utils.py
,例如
myproject/ (Django project)
common/
util/
__init.py__ (project app specific functions)
myapp/
migrations/ (myapp migrations)
utils.py (myapp specific functions)
views.py
admin.py
forms.py
models.py
test.py
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
21395 次 |
最近记录: |