简单介绍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 文件操作技巧(File operation) 实例代码分析
Aug 11 Python
python根据给定文件返回文件名和扩展名的方法
Mar 27 Python
python在ubuntu中的几种安装方法(小结)
Dec 08 Python
Python制作词云的方法
Jan 03 Python
Python使用numpy模块创建数组操作示例
Jun 20 Python
python 3.6.5 安装配置方法图文教程
Sep 18 Python
Python简单获取二维数组行列数的方法示例
Dec 21 Python
itchat-python搭建微信机器人(附示例)
Jun 11 Python
python 使用matplotlib 实现从文件中读取x,y坐标的可视化方法
Jul 04 Python
详解pycharm连接不上mysql数据库的解决办法
Jan 10 Python
Python3的socket使用方法详解
Feb 18 Python
Python基于callable函数检测对象是否可被调用
Oct 16 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
基于Windows下Apache PHP5.3.1安装教程
2010/01/08 PHP
php中批量修改文件后缀名的函数代码
2011/10/23 PHP
php页面函数设置超时限制的方法
2014/12/01 PHP
php字符串过滤与替换小结
2015/01/26 PHP
JavaScript DOM 学习第二章 编辑文本
2010/02/19 Javascript
原生javascript实现的一个简单动画效果
2016/03/30 Javascript
JavaScript简单获取页面图片原始尺寸的方法
2016/06/21 Javascript
微信小程序 参数传递详解
2016/10/24 Javascript
原生js实现水平方向无缝滚动
2017/01/10 Javascript
jQuery实现页码跳转式动态数据分页
2017/12/31 jQuery
零基础之Node.js搭建API服务器的详解
2019/03/08 Javascript
原生js实现可兼容PC和移动端的拖动滑块功能详解【测试可用】
2019/08/15 Javascript
vue实现带过渡效果的下拉菜单功能
2020/02/19 Javascript
vue实现下载文件流完整前后端代码
2020/11/17 Vue.js
[40:55]DOTA2上海特级锦标赛主赛事日 - 2 败者组第二轮#4Newbee VS Fnatic
2016/03/03 DOTA
Python实现获取操作系统版本信息方法
2015/04/08 Python
Python调用微信公众平台接口操作示例
2017/07/08 Python
Python tkinter的grid布局及Text动态显示方法
2018/10/11 Python
解决Python3 抓取微信账单信息问题
2019/07/19 Python
python实现桌面托盘气泡提示
2019/07/29 Python
Python pandas RFM模型应用实例详解
2019/11/20 Python
Python + selenium + crontab实现每日定时自动打卡功能
2020/03/31 Python
Python基于pandas爬取网页表格数据
2020/05/11 Python
Matplotlib 折线图plot()所有用法详解
2020/07/28 Python
Pycharm 设置默认解释器路径和编码格式的操作
2021/02/05 Python
video.js支持m3u8格式直播的实现示例
2020/05/20 HTML / CSS
行政专员求职信范文
2014/05/03 职场文书
股指期货心得体会
2014/09/10 职场文书
法院干警四风问题个人对照检查材料思想汇报
2014/10/07 职场文书
陕西导游词
2015/02/04 职场文书
关于职业道德的心得体会
2016/01/18 职场文书
python通配符之glob模块的使用详解
2021/04/24 Python
win10+anaconda安装yolov5的方法及问题解决方案
2021/04/29 Python
mybatis 获取无数据的字段不显示的问题
2021/07/15 Java/Android
一次SQL如何查重及去重的实战记录
2022/03/13 MySQL
spring cloud eureka 服务启动失败的原因分析及解决方法
2022/03/17 Java/Android