简单介绍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 相关文章推荐
Linux系统上Nginx+Python的web.py与Django框架环境
Dec 25 Python
Python实现约瑟夫环问题的方法
May 03 Python
Python实现将16进制字符串转化为ascii字符的方法分析
Jul 21 Python
Python通过命令开启http.server服务器的方法
Nov 04 Python
浅谈pandas中Dataframe的查询方法([], loc, iloc, at, iat, ix)
Apr 10 Python
Python中应该使用%还是format来格式化字符串
Sep 25 Python
Python 循环终止语句的三种方法小结
Jun 24 Python
Python函数装饰器原理与用法详解
Aug 16 Python
tensorflow 初始化未初始化的变量实例
Feb 06 Python
浅谈Django中的QueryDict元素为数组的坑
Mar 31 Python
python中upper是做什么用的
Jul 20 Python
解决hive中导入text文件遇到的坑
Apr 07 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操作mysql函数详解,mysql和php交互函数
2011/05/19 PHP
深入apache配置文件httpd.conf的部分参数说明
2013/06/28 PHP
Yii框架连表查询操作示例
2019/09/06 PHP
php字符串函数 str类常见用法示例
2020/05/15 PHP
laravel入门知识点整理
2020/09/15 PHP
javascript 二进制运算技巧解析
2012/11/27 Javascript
datagrid框架的删除添加与修改
2013/04/08 Javascript
文本框(input)获取焦点(onfocus)时样式改变的示例代码
2014/01/10 Javascript
在css加载完毕后自动判断页面是否加入css或js文件
2014/09/10 Javascript
Jquery 实现弹出层插件
2015/01/28 Javascript
nodejs导出excel的方法
2015/06/30 NodeJs
BootstrapTable+KnockoutJS自定义T4模板快速生成增删改查页面
2016/08/01 Javascript
BootStrap Datetimepicker 汉化的实现代码
2017/02/10 Javascript
详解AngularJs ui-router 路由的简单介绍
2017/04/26 Javascript
JSON是什么?有哪些优点?JSON和XML的区别?
2019/04/29 Javascript
vuex 中插件的编写案例解析
2019/06/10 Javascript
layui 富文本赋值,取值,取纯文本值的实例
2019/09/18 Javascript
layui 实现加载动画以及非真实加载进度的方法
2019/09/23 Javascript
Vue vm.$attrs使用场景详解
2020/03/08 Javascript
Python+Socket实现基于TCP协议的客户与服务端中文自动回复聊天功能示例
2017/08/31 Python
Python计算库numpy进行方差/标准方差/样本标准方差/协方差的计算
2018/12/28 Python
解决python web项目意外关闭,但占用端口的问题
2019/12/17 Python
python打印异常信息的两种实现方式
2019/12/24 Python
python使用turtle库绘制奥运五环
2020/02/24 Python
matplotlib绘制正余弦曲线图的实现
2021/02/22 Python
原装进口全世界:天猫国际
2016/08/03 全球购物
数字天堂软件测试面试题
2012/12/23 面试题
妇科医生自荐信
2013/11/05 职场文书
安全检查与奖惩制度
2014/01/23 职场文书
创先争优活动方案
2014/02/12 职场文书
平面设计专业求职信
2014/08/09 职场文书
班子群众路线教育实践个人对照检查材料思想汇报
2014/09/30 职场文书
见习报告格式范文
2014/11/08 职场文书
三好学生评选事迹材料(2016精选版)
2016/02/25 职场文书
2016年公共机构节能宣传周活动总结
2016/04/05 职场文书
原生Js 实现的简单无缝滚动轮播图的示例代码
2021/05/10 Javascript