Django(一)基於mysql的網頁

Django(一)基於mysql的網頁

Django是一個開源代碼的web代碼框架,其基於mvc框架,m爲模型,v爲視圖,c爲控制,一種優秀的軟件設計典範,用業務邏輯、數據、界面顯示分離的方法組織代碼。

本文即將搭建一個簡單的評論網頁,其使用mysql作爲數據存儲後端。

1mysq安裝:

參見本博客中的mysql安裝

安裝完成後,需要下載pythonmysqlMySQL-pyton,不過官網上的下載不支持64位數,下載的過程中會報錯,因此需要64位安裝包。

問題1:找不到python2.7,無法安裝:

實際上,當我們用python去查的時候,可以看到該pyhon的版本是2.7.1,根據相關資料,其原因是因爲64位需要再進行註冊一番:

import sys      

from _winreg import *  

# tweak as necessary  

version = sys.version[:3]  

installpath = sys.prefix  

regpath = "SOFTWARE\\Python\\Pythoncore\\%s\\" % (version)  

installkey = "InstallPath"  

pythonkey = "PythonPath"  

pythonpath = "%s;%s\\Lib\\;%s\\DLLs\\" % (  

    installpath, installpath, installpath  

)  

def RegisterPy():  

    try:  

        reg = OpenKey(HKEY_CURRENT_USER, regpath)  

    except EnvironmentError as e:  

        try:  

            reg = CreateKey(HKEY_CURRENT_USER, regpath)  

            SetValue(reg, installkey, REG_SZ, installpath)  

            SetValue(reg, pythonkey, REG_SZ, pythonpath)  

            CloseKey(reg)  

        except:  

            print "*** Unable to register!"  

            return  

        print "--- Python", version, "is now registered!"  

        return  

    if (QueryValue(reg, installkey) == installpath and  

        QueryValue(reg, pythonkey) == pythonpath):  

        CloseKey(reg)  

        print "=== Python", version, "is already registered!"  

        return  

    CloseKey(reg)  

    print "*** Unable to register!"  

    print "*** You probably have another Python installation!"  

if __name__ == "__main__":  

    RegisterPy()  

python下執行該腳本,就可以將python進行註冊。

問題2:版本不正確:

由於剛開始從官網上下載的是1.2.5版本的mysql,信息已經被寫入,後續再安裝1.2.364位的mysql-python時候,使用import MySQLdb時候,報錯顯示版本不匹配。這個時候,就要使用pip卸載:

可以先用pip list查看安裝包,其中MySQL-python的安裝信息,包括版本號。然後使用pip uninstall MySQL-python卸載。卸載完成後,重新安裝64位版本。

安裝完成之後,關閉dos窗口,重新打開:這時候,再進行導入即可:

 

2Windows下安裝Django

這裏先在windows下安裝Django,下載包地址:

https://www.djangoproject.com/download/

下載完成後解壓到文件,執行python setup.py install進行安裝

安裝完成後,執行命令,查看是否正常:

 

3windowspip安裝:

爲了方便使用,windows下的pip安裝是必要的,pip地址:

http://my.oschina.net/uxstone/blog/511971?fromerr=2JTEGBmb

執行python get-pip.py即可安裝

或者下載源碼包:

https://pypi.python.org/pypi/pip#downloads 

然後執行python setup.py install

驗證pip

執行pip list可知道pip是否正常安裝

4、使用Django配置:

配置1:無法執行py文件:

在任意目錄下使用django-admin.py startproject myproject進行測試,發現並沒有生成相應的工程myproject。這裏會有一些問題:需要將註冊表中的數值項改爲:

 HKEY_CLASSES_ROOTpy_auto_fileshellopencommand 將值"C:Python27python.exe""%1" 改爲 "C:Python27python.exe""%1"%*

完成後,運行:django-admin starproject myproject進行配置即可,即可發現生曾了對應的文件:

 

配置2:安裝數據庫(由於我們使用了mysql,故這裏不需要再安裝sqlite,如果要安裝,請參考如下:)

進入該文件夾,執行manage runserver,發現無法連接到數據庫,要是在ubuntu下,可直接使用sudo apt-get安裝sqlitewindows下需要編譯),但是是在windows下,真是好糾結,還需要手動安裝SQL數據庫,也是醉了,django的數據庫:

https://docs.djangoproject.com/en/1.9/topics/install/#database-installation

配置3:執行python manage.py migrate的時候報錯:unable to open database file

網上查了很多文獻,但是很多都是說的是沒有使用絕對路徑,但是將setting怎麼進行更改都不可以,發現可能不是這個錯誤:

 

查看日誌,可能是sqlite沒有產生正確的數據庫,因此自己用python先調試一下。

 

發現含有中文字符的路徑可以無法產生db文件,因此這個錯誤是因爲路徑中包含了中文字符,也是醉了醉了……採用純英文路徑後,就可以正常的使用該數據庫。

配置4Errno 10013

在使用django的時候,有時候會報出10013錯誤:

 

出現這個錯誤的原因是:8000端口被佔用,比如,酷狗可能會佔用這個端口,故將酷狗退出,或者調用python manage.py runserver的時候指定另外一個端口。

5、創建第一個工程:

S1、創建鏈接的數據庫:

 

S2、創建工程:

django-admin startproject mysite

python manage.py migrate

python manage.py runserver

python manage.py startapp polls

setting中加入該應用名稱,然後執行下面三條命令進行數據庫遷移:

python manage.py makemigrations polls

python manage.py sqlmigrate polls 0001

python manage.py migrate

S3、測試:

Python manage.py runserver

輸入127.0.0.18000查看是否正常使用。

6、數據庫中插入我們的數據:

6a)、建庫:

  create database csvt default charset=utf8;

6b)、查詢:

 

其實,在我們沒有更改mysql的時候,是默認使用sqlite進行數據的存儲,因此,在我們的mysql數據庫中是查詢不到的。

所以,當我們需要使用數據時候,需要自己在數據庫中進行建表:

未完待續……

 

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章