简单介绍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发送邮件示例(支持中文邮件标题)
Feb 16 Python
python实现按任意键继续执行程序
Dec 30 Python
深入理解Python中变量赋值的问题
Jan 12 Python
Python从ZabbixAPI获取信息及实现Zabbix-API 监控的方法
Sep 17 Python
一篇文章搞懂Python的类与对象名称空间
Dec 10 Python
Python并发:多线程与多进程的详解
Jan 24 Python
学习和使用python的13个理由
Jul 30 Python
Python 异常的捕获、异常的传递与主动抛出异常操作示例
Sep 23 Python
Python turtle库绘制菱形的3种方式小结
Nov 23 Python
Pyspark读取parquet数据过程解析
Mar 27 Python
利用python控制Autocad:pyautocad方式
Jun 01 Python
利用python进行文件操作
Dec 04 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核心代码分析require和include的区别
2011/01/02 PHP
php 数组的一个悲剧?
2011/05/11 PHP
PHP实现生成唯一编号(36进制的不重复编号)
2014/07/01 PHP
反射调用private方法实践(php、java)
2015/12/21 PHP
PHP标准库(PHP SPL)详解
2019/03/16 PHP
采用CSS和JS,刚好我最近有个站点要用到下拉菜单!
2006/06/26 Javascript
firefox中JS读取XML文件
2006/12/21 Javascript
js操作Xml(向服务器发送Xml,处理服务器返回的Xml)(IE下有效)
2009/01/30 Javascript
求数组最大最小值方法适用于任何数组
2013/08/16 Javascript
node.js中的fs.fstat方法使用说明
2014/12/15 Javascript
JQuery显示隐藏DIV的方法及代码实例
2015/04/16 Javascript
Js+php实现异步拖拽上传文件
2015/06/23 Javascript
JavaScript判断FileUpload控件上传文件类型
2015/09/28 Javascript
javascript实现二级级联菜单的简单制作
2015/11/19 Javascript
全面解析多种Bootstrap图片轮播效果
2016/05/27 Javascript
jQuery模拟下拉框选择对应菜单的内容
2017/03/07 Javascript
vue中jsonp插件的使用方法示例
2020/09/10 Javascript
[05:13]TI4 中国战队 机场出征!!
2014/07/07 DOTA
python BeautifulSoup设置页面编码的方法
2015/04/03 Python
Swift 3.0在集合类数据结构上的一些新变化总结
2016/07/11 Python
python定时利用QQ邮件发送天气预报的实例
2017/11/17 Python
python引用(import)某个模块提示没找到对应模块的解决方法
2019/01/19 Python
Python列表切片操作实例总结
2019/02/19 Python
Python eval的常见错误封装及利用原理详解
2019/03/26 Python
win10子系统python开发环境准备及kenlm和nltk的使用教程
2019/10/14 Python
Python之Matplotlib文字与注释的使用方法
2020/06/18 Python
opencv 图像加法与图像融合的实现代码
2020/07/08 Python
解析python 类方法、对象方法、静态方法
2020/08/15 Python
实习护士自我鉴定
2013/10/13 职场文书
担保书格式及范文
2014/04/01 职场文书
大学生入党自荐书
2015/03/05 职场文书
2015年食品安全工作总结
2015/05/15 职场文书
2016暑期社会实践新闻稿
2015/11/25 职场文书
导游词之云南丽江古城
2019/09/17 职场文书
SQL Server2019数据库备份与还原脚本,数据库可批量备份
2021/11/20 SQL Server
MongoDB数据库部署环境准备及使用介绍
2022/03/21 MongoDB