zoukankan      html  css  js  c++  java
  • Django 1.6在Windows平台下的配置

    Django 1.6 在Windows平台下的配置

    前言

    最近两天研究了下Django1.6在Windows平台中的配置安装,服务器采用Apache。期间遇到过许多新手所遇到的各种问题,也算是一种宝贵经历,问题原因主要是关于新版Django静态文件的配置问题,尤其是media和static两种文件的混淆。网上很多教程都是基于比较老的版本所写,导致配置思路有差异,最有价值的内容当属Django官网的参考资料,值得细读。

    配置环境

    Python:2.7.6

    Apache: 2.2

    Django: 1.6

    OS: windows 7

    目录

    Python 安装


    Python软件安装

    Python官网下载相应Win32版本的即可,我的是2.7.6。关于Python版本的选择在网上有很多介绍,因为3.X以上版本很多模块不支持,所以最好选择2.X安装。下载完后直接点击安装,至于安装路径可选择默认也可自定义。建议是最好不要放在类似Program Files的文件夹中,直接放在C盘或其它盘根目录下。因为我在用Mingw32创建Django工程时,安装在此路径下的python会出现C:program: bad interpreter错误,也可能是自己未配置好的原因。软件安装好后将python安装目录添加到环境变量PATH

    Python包安装

    由于安装Django我使用的是Pip安装,所以在此先安装Pip包,我一般选择国内的安装源,不仅速度快且稳定,上面基本上囊括了PyPi的所有包,很方便。找到PIP相应的目录选择相应的版本,点击下载即可,然后将目录解压,进入目录执行如下命令安装。

    python setup.py install
    

    安装好后,需要将[python安装目录]/Scripts路径添加到环境变量,以便在任何地方使用。

    Apache安装

    目前用得最广的版本是2.2,直接到Apache官网下载即可。关于是否安装Apache还是Nginx的问题,网上有相关介绍,各有优势,不在此赘述。

    Django 安装


    Django下载

    进入命令行,可以是Windows CMD, 我用的是Mingw32,执行如下命令:

    $ pip install django -i http://e.pypi.python.org/simple/
    

    命令中指定下载安装源。安装好后会在Python安装目录中的Lib/Site-packages/路径下生成Django目录,同时会为在Python安装目录下的Scripts/目录中产生django-admin.py文件,此文件就是我们需要用来创建Django工程和应用的主文件,需要详细了解。安装好后需要测试是否安装成功,进入Python Shell环境,执行import django命令,如果未出现错误说明Django安装成功。

    Mod_WSGI配置

    下载mod_wsgi.so文件,并配置mod_wsgi模块, 找到Apache安装目录下Conf/httpd.conf,在LoadModule处添加如下语句:

    LoadModule wsgi_module modules/mod_wsgi.so
    

    Django工程创建


    创建工程

    Django工程的创建利用django-admin.py进行,在相应的目录执行如下命令即可创建一个Django工程:

    django-admin.py startproject zend
    

    其中,zend是工程名。工程创建好之后,架构如下所示:

    zend  #项目名称
    |
    --zend #项目子文件夹
    |
    ----__init__.py  #项目初始化文件
        |
    ----settings.py  #项目配置文件
        |
    ----urls.py      #项目链接管理文件
        |
    ----wsgi.py      #wsgi配置文件
    |
    --manage.py     #项目管理文件,执行各种操作,如内置服务器启动,数据库表管理等
    

    在下面将以此工程进行介绍。

    Settings.py设置

    此文件很关键,设置不对无法访问Django项目,设置涉及几个方面,主要字段有:

    INSTALLED_APPS  #关于APP方面的设置,如自己创建的APP
    DATABASES       #数据库方面设置,mysql,sqlite3,oracle
    STATICFILES_DIR #静态文件目录设置
    TEMPLATE_DIRS   #模板文件目录设置
    

    INSTALLED_APPS字段主要涉及所创建的APP,其中最为关键的一点是关于django.contrib.staticfiles的设置,此处需添加上,这一步很关键。

    DATABASES字段,我设置的是Mysql,所以最后配置如下:

    DATABASES = {
        'default': {
            'ENGINE': 'django.db.backends.mysql',#mysql engine
            'NAME':'zend',  #database name
            'USER':'root', #database user
            'PASSWORD':'xxx', #database password
            'HOST':'',  #主机名
            'PORT':'',  #访问端口
        }
    }
    

    在配置之前,需要创建数据库zend

    STATICFILES_DIR字段,主要用来配置静态文件目录,当项目运行时,通过此目录找到相应的静态配置文件,如css,js,images等。配置如下:

    STATIC_URL = '/static/'
    STATICFILES_DIRS=(os.path.join(BASE_DIR,"static"),)
    

    TEMPLATE_DIRS字段,主要用来配置模板文件目录。配置如下: TEMPLATE_DIRS=( os.path.join(BASE_DIR,'templates'),)

    配置STATICFILES_DIRS和TEMPLATE_DIRS需要在zend工程目录下创建static和templates文件夹,在apache配置时还提及media,所以同时创建media文件夹。同时最关键的是static文件夹的内容。如果在Apache中指定的static目录是工程目录下的static目录,则执行如下命令后会把site-packages/django/contrib/admin/static/下的内容拷贝到工程目录中的static文件夹中:

    python manage.py collectstatic
    

    我是按照此方法来设置静态文件的。所以下面Apache的配置也是根据此目录来设置。

    wsgi.py设置

    此文件是关于创建工程后的解析设置,文件内容如下:

    import os,sys
    os.environ.setdefault("DJANGO_SETTINGS_MODULE", "zend.settings")
    sys.path.append(r'D:/www/django/zend') #工程路径
    from django.core.wsgi import get_wsgi_application
    application = get_wsgi_application()
    

    Apache配置

    此步骤是花时间比较多的步骤,一开始查阅网上资料说的都很乱,有的是Django版本不对,有的是Apache配置本身不对。最后静下心查看官网的关于Apache的配置文章才有所领悟。按照此文章的介绍,我整理了下我的配置思路,我主要是用虚拟目录方式来配置,区别就是我把WSGIScriptAlias语句放在了虚拟目录配置文件httpd-vhost.conf中,而常规的话是放在httpd.conf中。

    首先,把httpd.conf文件中的Include conf/extra/httpd-vhosts.conf去掉注释,以便在虚拟目录配置文件中进行Django配置。

    其次,打开conf/extra/httpd-vhosts.conf文件,进行如下配置:

    <VirtualHost *:80>
    DocumentRoot "D:/www/django/zend"
    ServerName localhost
    AliasMatch ^/([^/]*.css) "d:/www/django/zend/static/styles/$1
    Alias /media/ "d:/www/django/zend/media/"
    Alias /static/ "d:/www/django/zend/static/"
    <Directory "D:/www/django/zend/static">
        Order deny,allow
        Allow from all
    </Directory>
    <Directory "D:/www/django/zend/media">
        Order deny,allow
        Allow from all
    </Directory>
    
    WSGIScriptAlias / "d:/www/django/zend/zend/wsgi.py"
    
    <Directory "D:/www/django/zend/zend">
    <Files wsgi.py>     
        Order Deny,Allow
        Allow from all
    </Files>
    </Directory>
    </VirtualHost>
    

    测试工程

    如果用Django内置服务器的话,进入工程目录,直接执行以下命令:

    python manage.py runserver [port] #port可省略,默认为8000
    

    在浏览器中输入localhost即可,如果出现It works等字眼,说明django配置成功。

    如果用Apache的话,先启动apahce服务,然后输入localhost如果出现上述字眼,表明apache配置成功。

    总结

    此文档主要是为记录安装过程所写,以备后忘,在配置过程中,遇到很多问题,从网上也找到一些资料参考,收获还是很多的。

  • 相关阅读:
    Unity 3(一):简介与示例
    MongoDB以Windows Service运行
    动态SQL中变量赋值
    网站发布IIS后堆栈追踪无法获取出错的行号
    GridView Postback后出错Operation is not valid due to the current state of the object.
    Visual Studio 2010 SP1 在线安装后,找到缓存在本地的临时文件以便下次离线安装
    SQL Server 问题之 排序规则(collation)冲突
    IIS 问题集锦
    linux下安装mysql(ubuntu0.16.04.1)
    apt-get update 系列作用
  • 原文地址:https://www.cnblogs.com/ballwql/p/3507784.html
Copyright © 2011-2022 走看看