简单介绍Python的Django框架的dj-scaffold项目

yipeiwu_com6年前Python基础

由于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升级提示Tkinter模块找不到的解决方法

一、安装tkinter 在Linux中python默认是不安装Tkinter模块, 复制代码 代码如下: [root@li250-193 ~]# python Python 2.6.6...

python的Crypto模块实现AES加密实例代码

python的Crypto模块实现AES加密实例代码

本文主要探索的是python的Crypto模块实现AES加密,分享了具体实现代码,下面看看具体内容。 学了使用Crypto模块的AES来加密文件,现在记录下来便于后边儿查看。 在刚开始...

Python使用logging结合decorator模式实现优化日志输出的方法

本文实例讲述了Python使用logging结合decorator模式实现优化日志输出的方法。分享给大家供大家参考,具体如下: python内置的loging模块非常简便易用, 很适合程...

Python cv2 图像自适应灰度直方图均衡化处理方法

Python cv2 图像自适应灰度直方图均衡化处理方法

__author__ = 'Administrator' import numpy as np import cv2 mri_img = np.load('mri_img.npy...

详解如何用django实现redirect的几种方法总结

用django开发web应用, 经常会遇到从一个旧的url转向一个新的url。这种隐射也许有规则,也许没有。但都是为了实现业务的需要。总体说来,有如下几种方法实现 django的 red...