简单介绍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实现划词翻译
Apr 23 Python
跟老齐学Python之类的细节
Oct 13 Python
通过C++学习Python
Jan 20 Python
window下eclipse安装python插件教程
Apr 24 Python
详解Python开发中如何使用Hook技巧
Nov 01 Python
python初学之用户登录的实现过程(实例讲解)
Dec 23 Python
对Python3.6 IDLE常用快捷键介绍
Jul 16 Python
Python3实现发送邮件和发送短信验证码功能
Jan 07 Python
python实现可下载音乐的音乐播放器
Feb 25 Python
使用py-spy解决scrapy卡死的问题方法
Sep 29 Python
python判断all函数输出结果是否为true的方法
Dec 03 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
实用函数5
2007/11/08 PHP
php md5下16位和32位的实现代码
2008/04/09 PHP
php zip文件解压类代码
2009/12/02 PHP
PHP实现从远程下载文件的方法
2015/03/12 PHP
php实现源代码加密的方法
2015/07/11 PHP
基于jQueryUI和Corethink实现百度的搜索提示功能
2016/11/09 PHP
Yii2第三方类库插件Imagine的安装和使用
2017/07/06 PHP
Laravel 5.4前后台分离,通过不同的二级域名访问方法
2019/10/13 PHP
Javascript中的delete介绍
2012/09/02 Javascript
使用JavaScript 编写简单计算器
2014/11/24 Javascript
javascript动态设置样式style实例分析
2015/05/13 Javascript
简介JavaScript中strike()方法的使用
2015/06/08 Javascript
JS密码生成与强度检测完整实例(附demo源码下载)
2016/04/06 Javascript
Javascript+CSS3实现进度条效果
2016/10/28 Javascript
JS操作input标签属性checkbox全选的实现代码
2017/03/02 Javascript
详解如何用模块化的方式写vuejs
2017/12/16 Javascript
Node.js 使用request模块下载文件的实例
2018/09/05 Javascript
扫微信小程序码实现网站登陆实现解析
2019/08/20 Javascript
JS手写一个自定义Promise操作示例
2020/03/16 Javascript
解决Antd Table表头加Icon和气泡提示的坑
2020/11/17 Javascript
JavaScript this关键字的深入详解
2021/01/14 Javascript
python通过imaplib模块读取gmail里邮件的方法
2015/05/08 Python
python获取指定路径下所有指定后缀文件的方法
2015/05/26 Python
python中numpy基础学习及进行数组和矢量计算
2017/02/12 Python
Python使用time模块实现指定时间触发器示例
2017/05/18 Python
matplotlib 输出保存指定尺寸的图片方法
2018/05/24 Python
pandas.dataframe按行索引表达式选取方法
2018/10/30 Python
Python操作mongodb数据库的方法详解
2018/12/08 Python
利用python读取YUV文件 转RGB 8bit/10bit通用
2019/12/09 Python
opencv之为图像添加边界的方法示例
2019/12/26 Python
香港永安旅游网:Wing On Travel
2017/04/10 全球购物
中科方德软件测试面试题
2016/04/21 面试题
幼教求职信
2014/03/12 职场文书
财务会计专业求职信
2014/06/09 职场文书
致短跑运动员加油稿
2015/07/21 职场文书
新员工入职感想
2015/08/07 职场文书