django开发环境搭建(参考流程)

django开发环境搭建(参考流程) 2013-08-08 01:09:06

分类: LINUX

原文地址:django开发环境搭建(参考流程) 作者:bailiangcn

对于一个初学者,在实际的开发环境中,应该采用什么的样的工具来开发django呢?

我想环境至少应该具备的特性有:

  • 多版本python环境的支持
  • 版本控制
  • 自动测试框架
  • 数据库支持迁移
  • 部署的自动化

参考文档

  1. VirtualEnv 和Pip 构建Python的虚拟工作环境
  2. 使用VitrualEnvWrapper隔离python项目的库依赖
  1. South的快速指南-英文
  2. django South 介绍
  3. 用 Django South 做 Database Migration
  • Fabric文档
  1. Fabric文档-英文
  2. Fabric入门指南-英文
  3. Fabric自动化你的任务
  4. 使用Fabric批量执行副武器任务

本文试图针对以上问题,总结一个django开发的“标准的工作流程”。

前期准备

  • python软件已经安装
  • 本文以 ubuntu 12.04 64位 作为环境举例

一、Python虚拟环境的搭建

使用工具virtualenv搭建Python虚拟环境,主要希望解决几个问题:

  • 隔离项目之间的第三方包依赖,如A项目依赖django1.2.5,B项目依赖django1.3。
  • 为部署应用提供方便,把开发环境的虚拟环境打包到生产环境即可,不需要在服务器上再折腾一翻。

操作步骤

假设需要建立一个名称为 ELC 虚拟环境

(基本virtualenvwrapper命令列表)

        1. 安装 virtualenvwrapper (virtualenv的命令包装) ,会自动安装 virtualenv

                $ sudo pip install virtualenvwrapper

        2. 修改 ~/.bashrc ,把以下内容加入.bashrc 的尾部

                export WORKON_HOME=$HOME/.virtualenvs
                export PROJECT_HOME=$HOME/directory-you-do-development-in
                source /usr/local/bin/virtualenvwrapper.sh

            然后执行命令让virtualenvwrapper命令生效

                $ source .bashrc

        3. 建立 ELC 环境

                $ mkvirtualenv ELC

        4. 检查 env 的环境
  • 提示符变为 (ELC)[[email protected]:~]$
  • which python 输出为
                /home/bl/.virtualenvs/ELC/bin/python

二、安装django

假设准备安装最新的django版本。

操作步骤

        1. 保证提示符是 (ELC)的情况下,也就是在 ELC虚拟状态下

                pip install django
如果出现 Cannot fetch index base URL https://pypi.python.org/simple/ 错误 参考这里解决

        2. 验证安装情况

                (ELC)$ which django-admin.py

           返回结果

                /home/bl/.virtualenvs/ELC/bin/django-admin.py

三、建立初始的django项目

假设准备建立一个名称为 ELcloud 的django项目。

操作步骤

        1. 保证提示符是 (ELC)的情况下,也就是env状态下

                (ELC)$ django-admin.py startproject ELcloud
现在在家目录下 ELcloud 的目录结构是:

            /home/bl/ELcloud
                   |---
                   |---manage.py
                   |---ELcloud
                   |      |---urls.py
                   |      |---__init__.py
                   |      |---wsgi.py
                   |      |---settings.py

四、使用git和坚果云进行版本控制

我平常喜欢使用国内的坚果云作为代码的托管服务器,所以下面介绍如何使用坚果云配合git来进行管理代码,当然使用github也可以。

操作步骤

        1. 初始化本地 git 库

                (ELC)$ cd ~/ELcloud
                (ELC)$ git init

        2. 因为settings.py配置文件会有敏感信息,提交一个初始化的settings_default.py,建立 .gitignore 文件忽略实际使用的 settings.py

                (ELC)$ cp ~/ELcloud/ELcloud/settings.py ~/ELcloud/ELcloud/settings_default.py
                (ELC)$ echo -ne ‘*.pyc\nsettings.py\n*.json‘ > .gitignore

           现在 .gitignore 文件的内容变成
               *.pyc         python的中间文件
               settings.py   项目的配置文件
               *.json        django生成的中间文件

        3. 进行首次的本地提交

                (ELC)$ git add .
                (ELC)$ git commit -a -m "项目建立,初次提交"

        4.从本地向坚果云推送

                 $ git clone --bare ~/ELcloud ~/Nutstore/git/ELcloud.git

五、通过South对django数据库进行维护

django的syncdb命令在数据库表首次建立时能够根据model建立相应的表,但是一旦数据库中有同名的表,则syncdb命令不会更新数据库。虽然不能说django这样设计不好,但确实挺麻烦。

South解决了这个问题,能够检测对models的更改并同步到数据库。

操作步骤

        1. 安装south

                (ELC)$ pip install south

        2. 在 django 的 settings.py 的 INSTALLED_APPS 段中增加 ‘south‘,
           现在 ~/ELC/ELcloud/ELcloud/settings.py 的 INSTALLED_APPS
           段内容是(django 1.5.1):

                INSTALLED_APPS = (
                ‘django.contrib.auth‘,
                ‘django.contrib.contenttypes‘,
                ‘django.contrib.sessions‘,
                ‘django.contrib.sites‘,
                ‘django.contrib.messages‘,
                ‘django.contrib.staticfiles‘,
                # Uncomment the next line to enable the admin:
                # ‘django.contrib.admin‘,
                # Uncomment the next line to enable admin documentation:
                # ‘django.contrib.admindocs‘,
                ‘south‘,
                )

        3. 根据自身的环境设置 settings.py 的数据库部分,比如我使用 postgrepsql ,
           需要先安装 psycopyg2 接口

                (ELC)$ sudo apt-get build-dep psycopg2
                (ELC)$ pip install psycopg2

           然后手工建立一个elist的数据库,修改settings.py的 DATABASES 部分,去掉注释后是:

                DATABASES = {
                    ‘default‘: {
                        ‘ENGINE‘: ‘django.db.backends.postgresql_psycopg2‘,
                        ‘NAME‘: ‘elist‘,
                        ‘USER‘: ‘databaseuser‘,
                        ‘PASSWORD‘: ‘password‘,
                        ‘HOST‘: ‘localhost‘,
                        ‘PORT‘: ‘‘,
                            }
                        }

        4. 执行django的syncdb命令,在建立实际django应用前让South建立必须的数据表。

               (ELC)$ python manage.py syncdb

           会提示建立django应用中的用户名、电子邮件和密码

        5. 建立 pip 安装的软件环境的快照,用于版本库管理

               (ELC)$ pip freeze > requirements.txt

           查看 requirements.txt 的内容

                Django==1.5.1
                South==0.7.6
                argparse==1.2.1
                psycopg2==2.5
                wsgiref==0.1.2

            如果需要安装,使用命令:
               (ELC)$ pip install -r requirements.txt

        6. 把 requirements.txt 加入版本控制,再次提交

                (ELC)$ cd ~/ELcloud
                (ELC)$ git add requirements.txt
                (ELC)$ git commit -a -m "south安装完毕,初次提交"

        7. 按照正常的方式建立一个 django 的应用app,比如一个叫做 elist 的应用

                (ELC)$ python manage.py startapp elist

           在 settings.py的INSTALLED_APP部分增加 elist,现在内容是:

                INSTALLED_APPS = (
                ‘django.contrib.auth‘,
                    ...
                ‘south‘,
                ‘elist‘,
                )

           在添加model前,需要告诉South准备迁移数据库

                (ELC)$ python manage.py schemamigration elist --initial
                (ELC)$ python manage.py migrate elist

           这样south会建立一个合并文件,用于应用和恢复数据库操作,在修改django 的 model后,可以使用命令

                (ELC)$ python manage.py schemamigration elist --auto
                       #检测对models的更改,但并不实际提交数据库

                (ELC)$ python manage.py migrate elist  #实际更改数据库

六、使用fabric进行自动部署

Fabric是一个Python库,可以通过SSH在多个host上批量执行任务。你可以编写任务脚本,然后通过Fabric在本地就可以使用SSH在大量远程服务器上自动运行。这些功能非常适合应用的自动化部署,或者执行系统管理任务。

操作步骤

        1. 安装fabric

                (ELC)$ pip install fabric

        2. 在 ~/ELcloud 目录下,建立一个名称为 fabfile.py的文件,内容如下:

                #!/usr/bin/env python
                # -*- coding: UTF-8 -*-

                from fabric.api import local

                def pd():
                    """
                    准备部署
                    """
                    local(‘python manage.py test elist‘)
                    local(‘git add -p && git commit‘)

            使用方式是 $ fab pd  ,能够自动测试django应用,更多 fabric的用法请参考fabric文档。

七、安装django-debug-toobal插件帮助开发调试

主站网址       django debug toolbar是一个django下的插件,能够在浏览器侧面显示一个面板,在实际开发中用来查看变量,分析性能等各方面都有不错的效果。

版本 0.9.4 显示的内容

  • django版本
  • cpu运行时间
  • django的settings
  • HTTP Headers
  • Request Vars (view函数、Cookies Variables、Session Variables、Get Variables、Post Variables)
  • SQL的实际语句及状态
  • 模板及上下文参数
  • Signals
  • Logging

操作步骤

  1. 安装

    (ELC)$ pip install django-debug-toolbar

  2. 配置 django的settings.py
    • 中间件部分(尽量往后放)

      MIDDLEWARE_CLASSES = (
              # ...
              ‘debug_toolbar.middleware.DebugToolbarMiddleware‘,
              # ...
          )
      
    • 安装app,在INSTALLED_APPS部分增加一行:
      INSTALLED_APPS = (
                  ...
              ‘debug_toolbar‘,
              )
      
    • 在settings.py末尾增加一行:(参考这里)
      INTERNAL_IPS = (‘127.0.0.1‘,)
      

注意在使用中,插件需要渲染摸板才能看到,否则看不到效果。

附录

1.virtualenvwrapper常用命令

  • 创建虚拟环境 mkvirtualenv [env]
  • 列出当前环境安装的包 lssitepackages
  • 返回系统环境 deactivate
  • 切换环境 workon [env]
  • 删除环境 rmvirtualenv [env]

2.django安装错误解决

如果在 pip install django过程中出现如下错误信息:

        Downloading/unpacking django
          Cannot fetch index base URL https://pypi.python.org/simple/
          Could not find any downloads that satisfy the requirement django
        No distributions at all found for django

首先使用命令 pip --version检查pip的版本,如果是 1.3.1,说明是 pip 1.3.1 与低版本的 OpenSSL 库不兼容造成的访问 https 错误,一种解决办法是:

             $ workon ELC
        (ELC)$ easy_install pip==1.2.1

3.django 端口占用的问题

如果在 python manager runserver过程中出现如下错误信息:

    Error: That port is already in use.

解决办法是:

     $ sudo fuser -k 8000/tcp

4.south的回退问题

有时候在south的使用过程中,希望回退到某个版本,可以使用下面的命令。

     # 列出所有版本,前面带星号表示已经应用
     $ python manage.py migrate --list

     # 会退到第13号版本
     $ python manage.py migrate elist 0013

django开发环境搭建(参考流程)

时间: 2024-12-24 18:24:48

django开发环境搭建(参考流程)的相关文章

Django开发环境搭建

Django 项目是一个定制框架,它源自一个在线新闻 Web 站点,于 2005 年以开源的形式被释放出来.Django 框架的核心组件有:用于创建模型的对象关系映射,为最终用户设计的完美管理界面,一流的 URL 设计,设计者友好的模板语言,缓存系统等. 为了搭建Django开发环境,先去Django官网看看.在Dlownload目录下告诉了用户怎么获取Django. How to get Django Django is available open-source under the BSD

centos 6.4x64 django开发环境搭建(升级python2.6.6为2.7.3)

最近学习python语言,学到django的时候,准备搭建一个django开发环境,几经周折,最终配置成功,现把配置过程整理出来,供大家学习交流: 服务器环境: CentOS release 6.4 (Final) x64 1,下载nux 的release文件 wget http://li.nux.ro/download/nux/dextop/el6/i386/nux-dextop-release-0-2.el6.nux.noarch.rpm rpm -ivh nux-dextop-releas

Python+django开发环境搭建

Python目前主版本有2个,2.7+和3.4+ 新入手,决定还是从2.7开始 先从python官网https://www.python.org/下载python2.7.10,64位版本(这里注意,选择了64位版本后,后面用到的python库也需要同样是64位的),python2.7用的还是vc9编译的,这个很重要,后续用到的库最好也是选择vc9编译出来的,否则容易出问题 安装完后,查看python版本 安装完python后,作为开发,肯定需要一个集成开发环境,安装完python后,python

windows系统下的django开发环境搭建

1. 安装python解释器,推荐安装版本python2.7. 安装完成后添加环境变量:path中加入python安装路径C:\Python27. 2. 安装eclipse集成开发环境,推荐版本eclipse4.3.直接将eclipse解压,找到eclipse.exe,双击运行.槽糕,报错了! 3. 别着急,这是因为系统必须具有java运行环境才能运行eclipse.推荐安装jdk1.7. 在环境变量中设置JAVA_HOME和Path: JAVA_HOME=JAK1.7.0_25,path=%J

Windows Django 开发环境搭建

查看博文: http://www.jianshu.com/p/82683a43b90c http://blog.csdn.net/gao36951/article/details/50573880

Django学习笔记 开发环境搭建

为什么使用django?1.支持快速开发:用python开发:数据库ORM系统,并不需要我们手动地构造SQL语句,而是用python的对象访问数据库,能够提升开发效率.2.大量内置应用:后台管理系统admin:用户认证系统auth:会话系统sessions.3.安全性高:表单验证,SQL诸如,跨站点攻击.4.易于扩展:django使用应用来划分逻辑功能.对于一个成熟的网站,如果需求变更了,只需要增加一个应用就可以了.学习django的知识储备:python基础,数据库SQL,HTTP协议,HTM

在windows上搭建django开发环境

参考自:https://docs.djangoproject.com/en/dev/howto/windows/ 环境: windows 8.1 Steps: 安装python 在 http://python.org/download/上下载windows版本进行安装 添加下面的路径到环境变量PATH: C:\Python34\;C:\Python34\Scripts; 安装开发IDE eclipse 下载地址: http://www.eclipse.org/downloads/ 安装eclip

The General Procedure Of Setting Up EDKII Development Environment:搭建EDKII开发环境的通用流程[2.1]

The General Procedure Of Setting Up EDKII Development Environment:搭建EDKII开发环境的通用流程[2.1] 2015-07   北京海淀区  张俊浩 2. Setting Up EDKII Development Environment(EDKII开发环境的搭建) ->2.1 The General Procedure Of Setting Up EDKII Development Environment(搭建EDKII开发环境

Window 7 64位 搭建 Django 开发环境

在 Eclipse + PyDev 搭建 Python 开发环境 的基础之上,如何搭建 Django 开发环境呢? 打开命令行,在命令行输入: conda install django 安装过程如下: Fetching package metadata ............. Solving package specifications: . Package plan for installation in environment C:\Anaconda3: The following NE