简单介绍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常见文件操作的函数示例代码
Nov 15 Python
Python和php通信乱码问题解决方法
Apr 15 Python
Python中文竖排显示的方法
Jul 28 Python
pandas.loc 选取指定列进行操作的实例
May 18 Python
python 批量添加的button 使用同一点击事件的方法
Jul 17 Python
通过selenium抓取某东的TT购买记录并分析趋势过程解析
Aug 15 Python
python global关键字的用法详解
Sep 05 Python
Python 开发工具通过 agent 代理使用的方法
Sep 27 Python
scrapy redis配置文件setting参数详解
Nov 18 Python
Pytorch - TORCH.NN.INIT 参数初始化的操作
Feb 27 Python
用Python实现一个打字速度测试工具来测试你的手速
May 28 Python
Python标准库之typing的用法(类型标注)
Jun 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
提问的智慧(2)
2006/10/09 PHP
PHP 中的一些经验积累
2006/10/09 PHP
PHP简介
2006/10/09 PHP
简单理解PHP的面向对象编程方式
2016/05/17 PHP
PHP文件下载实例代码浅析
2016/08/17 PHP
PHP生成各种随机验证码的方法总结【附demo源码】
2017/06/05 PHP
一个实用的php验证码类
2017/07/06 PHP
Thinkphp5.0 框架实现控制器向视图view赋值及视图view取值操作示例
2019/10/12 PHP
js从10种颜色中随机取色实现每次取出不同的颜色
2013/10/23 Javascript
javascript获取鼠标点击元素对象(示例代码)
2013/12/20 Javascript
使用js显示当前时间示例
2014/03/02 Javascript
jQuery遍历对象、数组、集合实例
2014/11/08 Javascript
Node.js中使用socket创建私聊和公聊聊天室
2015/11/19 Javascript
node.js与C语言 实现遍历文件夹下最大的文件,并输出路径,大小
2017/01/20 Javascript
ES6新特性之Symbol类型用法分析
2017/03/31 Javascript
MvcPager分页控件 适用于Bootstrap
2017/06/03 Javascript
浅谈JS如何实现真正的对象常量
2017/06/25 Javascript
微信小程序使用车牌号输入法的示例代码
2019/08/20 Javascript
Bootstrap实现模态框效果
2019/09/30 Javascript
vue移动端模态框(可传参)的实现
2019/11/20 Javascript
Python subprocess模块常见用法分析
2018/06/12 Python
Python爬虫框架Scrapy基本用法入门教程
2018/07/26 Python
利用Python如何批量修改数据库执行Sql文件
2018/07/29 Python
Python实现随机创建电话号码的方法示例
2018/12/07 Python
利用arcgis的python读取要素的X,Y方法
2018/12/22 Python
python 实现一次性在文件中写入多行的方法
2019/01/28 Python
更新修改后的Python模块方法
2019/03/03 Python
Pytorch实现LSTM和GRU示例
2020/01/14 Python
jupyter notebook 的工作空间设置操作
2020/04/20 Python
解决Alexnet训练模型在每个epoch中准确率和loss都会一升一降问题
2020/06/17 Python
校园歌手大赛策划书
2014/01/17 职场文书
教师四风自我剖析材料
2014/09/30 职场文书
土地租赁协议书
2015/01/29 职场文书
教师个人学习总结
2015/02/11 职场文书
公务员学习中国梦心得体会
2016/01/05 职场文书
python程序的组织结构详解
2021/12/06 Python