[Django1.5]two-scoops-django-best-practices 笔记二
来源:互联网 发布:张佳乐军装淘宝 编辑:程序博客网 时间:2024/06/05 11:21
chapter 3
django工程的布局
<repository_root>/
<django_project_root>/
<configuration_root>/
Top level:Repository Root
最上层是工程根目录的绝对路径
这里还经常有的文件是:
README
doc/
design/
.gitignore
requirement.txt
Second level:Django project root
这里通常是由django-admin.py startproject 命令产生的
这里还包括:
configuration_root
media/
static/
templates/
各种apps 的文件夹
Third level:configuration root
也是由 django-admin.py startproject 产生的
包括:
urls.py
settings.py等
简单的布局类似是这样:
icratings_project/
.gitignore
Makefile
docs/
requirements.txt
icratings/
manage.py
media/
products/
profiles/
ratings/
static/
templates/
icratings/
__init__.py
settings/
urls.py
wsgi.py
不需要把 virtualenv的内容放到版本控制中去,只要把需要的信息放到requirement.txt中就行了
chapter 4
django基本的app设计app设计的黄金法则:
Write programs that do one thing and do it well.
功能专一并且松耦合
一个工程中的实用app案例:
我们建立一个商店,使用twoscoops_project这个工程目录
这个Django project has:
•A flavors app to track all of our ice cream %avors and list them on our website.•A blog app for the o fficial Two Scoops blog.
•An events app to display listings of our shop's events on our website:events such as Strawberry Sundae Sundays and Fudgy First Fridays.
在将来可能增加的功能:
*A shop app to allow us to sell pints by mail order.
*A tickets app, which would handle ticket sales for premium all-you-can-eat icecream fests.
由于tickets这个功能很多应用可能不会用到,而且会有比较复杂的逻辑,所以我们单独分出一个app
怎么给app命名呢?
*当个单词,容易理解和维护 animals , blog, polls等
*有时还要考虑url的因素,适当调节名称
保持app比较小巧
chapter 5
配置和所需的文件好的实践经验:
*所有的配置文件需要版本控制
*DRY原则,相同配置继承即可
开发环境的配置不要在版本控制中,本地需要配置的debug等和生产环境区别很大。
使用多配置请参看 http://www.slideshare.net/jacobian/the-best-and-worst-of-django
建立settings模块来处理不同配置的使用
settings/
__init__.py
base.py
local.py
staging.py
test.py
production.py
使用时候可以这样使用:
$ django-admin.py runserver --settings=twoscoops.settings.local
一个开发环境的配置案例:
DEBUG = True
TEMPLATE_DEBUG = DEBUG
EMAIL_HOST = 'localhost'
EMAIL_PORT = 1025
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql_psycopg2',
'NAME': 'twoscoops',
'USER': '',
'PASSWORD': '',
'HOST': 'localhost',
'PORT': '',
}
}
INSTALLED_APPS += ('debug_toolbar', )
INTERNAL_IPS = ('127.0.0.1',)
MIDDLEWARE_CLASSES += \
('debug_toolbar.middleware.DebugToolbarMiddleware', )
使用方法:$ django-admin.py runserver --settings=twoscoops.settings.local
使用环境变量来保存密码
requirement也是用类似的模块处理不同环境下不同开发人员的不同配置
- [Django1.5]two-scoops-django-best-practices 笔记二
- [Django1.5] two-scoops-django-best-practices 笔记一
- [Django1.5]two-scoops-django-best-practices 笔记三
- [Django1.5] two-scoops-django-best-practices 读书笔记
- [Django1.5]two-scoops-django-best-practics 笔记四
- 《Android best practices》笔记
- [two scoops]为django admin后台添加模板(使用grappelli)
- Django1.5:(二)创建第一个Django应用5
- Django1.5:(二)创建第一个Django应用1
- Django1.5:(二)创建第一个Django应用2
- Django1.5:(二)创建第一个Django应用3
- Django1.5:(二)创建第一个Django应用4
- Best Practices -
- Django1.7学习笔记(二)
- django1.5 官方文档阅读笔记(二)
- CUDA C最佳实践-CUDA Best Practices(二)
- Django1.7.2+Bootstrap3.3.0 整合二:Django 1.7.2安装
- Web Services Best Practices
- Ubuntu 12.04安装dropbox
- MySQL 中文乱码问题总结
- 告别手写 API文档生成工具推荐
- c++内存分配
- 2013-05-02 SQL语句远程调用(remote)引发的性能问题
- [Django1.5]two-scoops-django-best-practices 笔记二
- 通过日志监控并收集 Java 应用程序性能数据
- C#中的委托和事件
- 基于 JUnit 的全局单元测试程序
- 怎么让C#的label的文字左右移动
- TOJ 10006 Josephus Problem
- 封送处理字符串
- Java 性能优化之 String 篇
- 心理学的166个现象---之一