Django搭建及源码分析(一)

1、关于Django如下两个站点,在使用方面有详细说明。html

  http://www.nowamagic.net/academy/part/13/286python

  http://www.w3cschool.cc/django/django-tutorial.htmlmysql

如下是在centos6.0最小系统下,搭建Django的过程,默认Python版本2.6linux

 

2、安装Djangosql

一、下载源码使用python setup.py install安装,下载时选择与python环境相兼容的版本。不少高版本的Django不下向兼容低版本的python,如1.7及以上版本不支持python2.6数据库

二、或使用pip django install,但只能下载并安装最新版本的django,没法根据当前python版本选择兼容的版本。django

三、也可以使用easy_install django安装,但实际报失败,未定位缘由。windows

(easy_install安装:下载ez_setup-0.9.tar.gz,使用python setup.py install安装,pip安装:easy_install安装后,easy_install pip)centos

 

3、确认是否安装成功浏览器

一、执行python,进入python交互环境,执行import django,成功;

二、执行django-admin命令,能够查看到help信息。

 

4、建立一个项目,并访问该项目,确认系统配置是否正确。

django-admin.py startproject MyDjProj

进入MyDjProj目录后,执行:python manage.py runserver 0.0.0.0:80

0.0.0.0:是保证其它设备能够经过访问ip地址来访问django,MyDjProj。如在windows环境下,经过浏览器访问10.10.50.109,可访问。

80:是端口,可使用其它端口。

**注:若是浏览器没法访问,检查iptable是否关闭。

若是浏览器访问正常,说明django环境搭建成功,更多django使用配置,便可参考一节中的两个站点详细说明。

 

5、安装数据库

Django默认使用sqlite3,若是想使用MySQL,须要安装MySQL-python,才能够经过Django框架使用MySQL。

基础环境安装mysql:包括,

  mysql-5.1.47-4.el6.x86_64
  mysql-devel-5.1.47-4.el6.x86_64
  mysql-server-5.1.47-4.el6.x86_64
  mysql-libs-5.1.47-4.el6.x86_64

安装MySQL-python,使用:

  pip install MySQL-python

安装前,必须保证系统已安装python-devel的包,不然会报缺乏python相关的.h文件,如"_mysql.c:29:20: error: Python.h: No such file or directory"。

(理论上应该也须要安装mysql-devel)

 

6、若是安装最新版本Django,必须先升级python。

  一、首先下载源tar包

    可利用linux自带下载工具wget下载,以下所示:

      wget http://www.python.org/ftp/python/3.3.0/Python-3.3.0.tgz

    或从网上下载Python-3.1.2.tar.bz2版本,下载完成后到下载目录下,解压

    bunzip2  Python-3.1.2.tar.bz2
    tar -xvf  Python-3.1.2.tar

  二、安装

    在编译前先在/usr/local建一个文件夹python3(做为python的安装路径,以避免覆盖老的版本)

      mkdir  /usr/ local /python3

    开始编译安装

      ./configure --prefix=/usr/ local /python3;make;make install
 
  三、更改bin文件。

    此时没有覆盖老版本,再将原来/usr/bin/python连接改成别的名字

      mv  /usr/bin/python /usr/bin/python_old

    再创建新版本python的连接

       ln  -s /usr/ local /python3/bin/python3 /usr/bin/python

    这个时候输入

      python

    就会显示出python的新版本信息。

  PS:若是不创建新安装路径python3,而是直接默认安装,则安装后的新python应该会覆盖linux下自带的老版本,也有可能不覆盖,具体看安装过程了,这个你们能够本身试验下,固然若是还想保留原来的版本,那么这种方法最好不过了。

  四、在python3.4版本中easy_install及pip工具已默认安装,使用此工具可安装自动下载并安装发布的python项目/工具。

  easy_install只提供了安装功能,pip提供了install及uninstall。

  五、安装时可能遇到的问题

  •  报错:“Python build finished successfully!

      The necessary bits to build these optional modules were not found:
      _bz2 _dbm _gdbm
      _lzma _sqlite3 _tkinter
      readline
      To find the necessary bits, look in setup.py in detect_modules() for the module's name.

      ”

      可暂忽略,但后续若是须要使用这些模块时,须要安装模块,从新安装python,因此,最好是将这些模块都安装后,再进行后续工做。

      模块对应包以下:

        
模块 依赖 说明
_bsddb bsddb Interface to Berkeley DB library。Berkeley数据库的接口
_curses ncurses Terminal handling for character-cell displays。
_curses_panel ncurses-devel A panel stack extension for curses。
_sqlite3 sqlite-devel DB-API 2.0 interface for SQLite databases。SqlLite,CentOS能够安装sqlite-devel
_ssl openssl-devel TLS/SSL wrapper for socket objects。
_tkinter tk-devel a thin object-oriented layer on top of Tcl/Tk。若是不使用桌面程序能够忽略TKinter
bsddb185 old bsddb module 老的bsddb模块,可忽略。
bz2 bzip2-devel Compression compatible with bzip2。bzip2-devel
dbm bsddb(安装gdbm-devel便可) Simple “database” interface。
dl N/A Call C functions in shared objects.Python2.6开始,已经弃用。
gdbm gdbm-devel.i686 GNU’s reinterpretation of dbm
imageop N/A Manipulate raw image data。已经弃用。
readline readline-devel GNU readline interface
sunaudiodev N/A Access to Sun audio hardware。这个是针对Sun平台的,CentOS下能够忽略
zlib Zlib Compression compatible with gzip
_lzma xz-devel compression utils

 

  • 报错“Ignoring ensurepip failure: pip 6.0.8 requires SSL/TLS”,须要安装openssl-devel包。
  • yum命令执行失败。由python2.6升级到python3.4版本,会遇到yum命令执行失败的问题,是因为/usr/bin/yum命令是python解释 器来解析的,而python这块的兼容性不太好,升级后,会遇到语法错误执行失败。解决方法一:升级yum;解决方法二:修改/usr/bin/yum, 将第一行,修改成#!/usr/bin/python2.6
  • 若是系统时间不正确,那么有可能在make的时候循环进行./configure的操做,没法进入真正的make环节。
相关文章
相关标签/搜索