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環節。
相關文章
相關標籤/搜索