简单介绍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用ConfigObj读写配置文件的实现代码
Mar 04 Python
用Python编程实现语音控制电脑
Apr 01 Python
Python和perl实现批量对目录下电子书文件重命名的代码分享
Nov 21 Python
Python程序中设置HTTP代理
Nov 06 Python
Python中的命令行参数解析工具之docopt详解
Mar 27 Python
Python中pow()和math.pow()函数用法示例
Feb 11 Python
利用TensorFlow训练简单的二分类神经网络模型的方法
Mar 05 Python
对Python3 解析html的几种操作方式小结
Feb 16 Python
pycharm设置鼠标悬停查看方法设置
Jul 29 Python
如何使用selenium和requests组合实现登录页面
Feb 03 Python
python实现简单学生信息管理系统
Apr 09 Python
浅谈Python3多线程之间的执行顺序问题
May 02 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
30 个很棒的PHP开源CMS内容管理系统小结
2011/10/14 PHP
PHP file_get_contents设置超时处理方法
2013/09/30 PHP
Smarty中的注释和截断功能介绍
2015/04/09 PHP
使用PHP uniqid函数生成唯一ID
2015/11/18 PHP
Yii基于数组和对象的Model查询技巧实例详解
2015/12/28 PHP
讲解WordPress中用于获取评论模板和搜索表单的PHP函数
2015/12/28 PHP
laravel 实现向公共模板中传值 (view composer)
2019/10/22 PHP
PHP中mysqli_get_server_version()的实例用法
2020/02/03 PHP
JavaScript调用堆栈及setTimeout使用方法深入剖析
2013/02/16 Javascript
深入浅出分析javaScript中this用法
2015/05/09 Javascript
javascript事件委托的方式绑定详解
2015/06/10 Javascript
用svg制作富有动态的tooltip
2015/07/17 Javascript
TypeScript学习之强制类型的转换
2016/12/27 Javascript
详解Vue微信公众号开发踩坑全记录
2017/08/21 Javascript
微信小程序自定义头部导航栏和导航栏背景图片 navigationStyle问题
2019/07/26 Javascript
vue实现图片上传到后台
2020/06/29 Javascript
JavaScript位置参数实现原理及过程解析
2020/09/14 Javascript
python如何在终端里面显示一张图片
2016/08/17 Python
Python实现的基于优先等级分配糖果问题算法示例
2018/04/25 Python
Python实现将Excel转换成为image的方法
2018/10/23 Python
python re库的正则表达式入门学习教程
2019/03/08 Python
python微信聊天机器人改进版(定时或触发抓取天气预报、励志语录等,向好友推送)
2019/04/25 Python
Python利用matplotlib绘制约数个数统计图示例
2019/11/26 Python
flask利用flask-wtf验证上传的文件的方法
2020/01/17 Python
Python安装OpenCV的示例代码
2020/03/05 Python
Python工程师必考的6个经典面试题
2020/06/28 Python
.img/.hdr格式转.nii格式的操作
2020/07/01 Python
详解在Python中使用Torchmoji将文本转换为表情符号
2020/07/27 Python
python中的对数log函数表示及用法
2020/12/09 Python
python获取天气接口给指定微信好友发天气预报
2020/12/28 Python
彪马土耳其官网:PUMA土耳其
2019/07/14 全球购物
个人求职简历的自我评价范文
2013/10/09 职场文书
2014年村计划生育工作总结
2014/11/14 职场文书
骨干教师事迹材料
2014/12/17 职场文书
美术教师个人工作总结
2015/02/06 职场文书
Python中npy和mat文件的保存与读取
2022/04/24 Python