简单介绍Python的Django框架的dj-scaffold项目


Posted in Python onMay 30, 2015

由于Django没有象rails一样指定项目的目录结构规范,很多人都对django项目的目录结构要如何组织而感到困惑。为此我又新创建了一个开源项目dj-scaffold(django的脚手架)。这个项目用于自动生成一个标注化的django项目和app。

项目地址:https://github.com/vicalloy/dj-scaffold
安装

已经发布到了pypi,所以你可以用pip或easy_install 来进行安装。

pip install dj-scaffold 
easy_install dj-scaffold

使用

dj-scaffold主要提供了两个命令,dj-scaffold.py和lbstartapp。
dj-scaffold.py

该脚本用于取代django的startproject命令。使用方式如下:

dj-scaffold.py projectname

在该命令执行后,将创建项目projectname。在项目的scripts目录中提供了脚本create_env.py和env.rc。

  •     create_env.py 执行该脚本将自动初始化python虚拟环境。新生成的python虚拟环境在env目录。
  •     env.rc 该脚本用户启动python虚拟环境(source env.rc)。该脚本同时为python manage.py设置了快捷方式$mg。你可以在任何目录调用$mg来执行django命令。比如你用$mg runserver来启动测试服务器。

项目对应的目录结构如下:

注:文件太多,去掉了部分不重要的文件

 

dj-scaffold.py projectname 

|+docs/  #用于存放项目的相关文档
|+env/   #python虚拟环境,由脚本自动生成
|~requirements/   #第三方依赖包的存放位置
| `-requirements.pip  #pip的依赖说明文件
|~scripts/  #系统相关的脚本
| |-create_env.py  #创建python虚拟环境(env目录)
| `-env.rc  #进入python虚拟环境。同时提供python manger.py的快捷方式$mg。可在任意目录使用$mg。
|~sites/  #Django的项目文件。在settings文件中增加了部分默认配置。如数据库默认使用sqlite,设置项目的模板以及静态文件目录。
| |+media/  #项目静态文件(用户上传)
| |+static/  #项目静态文件(css、js等)
| `+templates/  #项目模板
|+tools/  #一些项目依赖的第三方工具包。如python虚拟环境初始化脚本等。
`~wsgi/  #项目部署用的wsgi文件
 `-dj_scaffold.wsgi

 

lbstartapp

lbstartapp作为django的扩展命令提供。将dj_scaffold加到INSTALLED_APPS后即可使用该命令。该命令将生成一个标准的app,相比django自带的startapp,lbstartapp将那些不太常用的app默认目录也都给生成了出来。对应目录结构如下:

|+management/  #命令目录 
|+static/  #静态文件目录 
|+templates/  #模板目录 
|+templatetags/  #tag目录 
|-__init__.py 
|-admin.py  #admin管理后台的models配置文件 
|-forms.py 
|-models.py 
|-settings.py  #app自己的settings文件 
|-tests.py 
|-urls.py  #urls配置文件 
`-views.py
Python 相关文章推荐
python发送邮件示例(支持中文邮件标题)
Feb 16 Python
用python实现面向对像的ASP程序实例
Nov 10 Python
使用graphics.py实现2048小游戏
Mar 10 Python
Python代码解决RenderView窗口not found问题
Aug 28 Python
Python之Scrapy爬虫框架安装及使用详解
Nov 16 Python
Python 实现引用其他.py文件中的类和类的方法
Apr 29 Python
Python使用Dijkstra算法实现求解图中最短路径距离问题详解
May 16 Python
记一次python 内存泄漏问题及解决过程
Nov 29 Python
Python3.5集合及其常见运算实例详解
May 01 Python
基于python2.7实现图形密码生成器的实例代码
Nov 05 Python
Python callable内置函数原理解析
Mar 05 Python
python实现QQ邮箱发送邮件
Mar 06 Python
Python的Django框架中settings文件的部署建议
May 30 #Python
Python的Django中django-userena组件的简单使用教程
May 30 #Python
在SAE上部署Python的Django框架的一些问题汇总
May 30 #Python
python实现比较两段文本不同之处的方法
May 30 #Python
python统计文本文件内单词数量的方法
May 30 #Python
python使用win32com库播放mp3文件的方法
May 30 #Python
基于wxpython开发的简单gui计算器实例
May 30 #Python
You might like
php处理复杂xml数据示例
2016/07/11 PHP
win10 apache配置虚拟主机后localhost无法使用的解决方法
2018/01/27 PHP
golang实现php里的serialize()和unserialize()序列和反序列方法详解
2018/10/30 PHP
使用TextRange获取输入框中光标的位置的代码
2007/03/08 Javascript
从sohu弄下来的flash中展示图片的代码
2007/04/27 Javascript
Javascript 同时提交多个Web表单的方法
2009/02/19 Javascript
jQuery动态添加与删除tr行实例代码
2016/10/18 Javascript
实例解析jQuery中如何取消后续执行内容
2016/12/01 Javascript
JavaScript用JSONP跨域请求数据实例详解
2017/01/06 Javascript
Angular ui.bootstrap.pagination分页
2017/01/20 Javascript
用户管理的设计_jquery的ajax实现二级联动效果
2017/07/13 jQuery
ionic App问题总结系列之ionic点击系统返回键退出App
2017/08/19 Javascript
Bootstrap Table 删除和批量删除
2017/09/22 Javascript
Nuxt配合Node在实际生产中的应用详解
2018/08/07 Javascript
jQuery实现动画、消失、显现、渐出、渐入效果示例
2018/09/06 jQuery
vue动态绑定class选中当前列表变色的方法示例
2018/12/19 Javascript
微信小程序前端promise封装代码实例
2019/08/24 Javascript
Laravel 如何在blade文件中使用Vue组件的示例代码
2020/06/28 Javascript
[02:32]DOTA2亚洲邀请赛 C9战队出场宣传片
2015/02/07 DOTA
python通过scapy获取局域网所有主机mac地址示例
2014/05/04 Python
在Python的Django框架中更新数据库数据的方法
2015/07/17 Python
python中类的输出或类的实例输出为这种形式的原因
2019/08/12 Python
解决TensorFlow GPU版出现OOM错误的问题
2020/02/03 Python
Python爬虫获取页面所有URL链接过程详解
2020/06/04 Python
如何使用Python自动生成报表并以邮件发送
2020/10/15 Python
python 检测nginx服务邮件报警的脚本
2020/12/31 Python
python源文件的字符编码知识点详解
2021/03/04 Python
联想西班牙官网:Lenovo西班牙
2018/08/28 全球购物
毕业生就业意向书
2014/04/01 职场文书
离婚协议书怎么写(范本参考)
2014/09/30 职场文书
机关作风建设整改方案
2014/10/27 职场文书
内勤岗位职责范本
2015/04/13 职场文书
给老婆的保证书怎么写
2015/05/08 职场文书
致接力运动员加油稿
2015/07/21 职场文书
2019财务管理制度最新范本!
2019/07/09 职场文书
Python道路车道线检测的实现
2021/06/27 Python