天天看點

django學習筆記(1)

Django 特點

強大的資料庫功能

     用python的類繼承,幾行代碼就可以擁有一個豐富,動态的資料庫操作接口(API),如果需要你也能執行SQL語句

自帶的強大的背景功能

     幾行簡單的代碼就讓你的網站擁有一個強大的背景,輕松管理你的内容!

優雅的網址

     用正則比對網址,傳遞到對應函數,随意定義,如你所想!

模闆系統

     強大,易擴充的模闆系統,設計簡易,代碼,樣式分開設計,更容易管理。

緩存系統

     與memcached或其它的緩存系統聯用,更出色的表現,更快的加載速度。

國際化

     完全支援多語言應用,允許你定義翻譯的字元,輕松翻譯成不同國家的語言。

Django 全貌一覽

urls.py

     網址入口,關聯到對應的views.py中的一個函數(或者generic類),通路網址就對應一個函數。

views.py

     處理使用者發出的請求,從urls.py中對應過來, 通過渲染templates中的網頁可以将顯示内容,比如登陸後的使用者名,使用者請求的資料,輸出到網頁。

models.py

     與資料庫操作相關,存入或讀取資料時用到這個,當然用不到資料庫的時候 你可以不使用。

forms.py

     表單,使用者在浏覽器上輸入資料送出,對資料的驗證工作以及輸入框的生成等工作,當然你也可以不使用。

templates 檔案夾

     views.py 中的函數渲染templates中的Html模闆,得到動态内容的網頁,當然可以用緩存來提高速度。

admin.py

     背景,可以用很少量的代碼就擁有一個強大的背景。

settings.py

     Django 的設定,配置檔案,比如 DEBUG 的開關,靜态檔案的位置等。

Django 基本指令

建立 項目

     $ django-admin startproject mysite

建立 app

     $ python manage.py startapp blog

     一般一個項目有多個app, 當然通用的app也可以在多個項目中使用。

同步資料庫

     $ python manage.py migrate

使用開發伺服器

     $ python manage.py runserver [port]

清空資料庫

     $ python manage.py flush

建立超級管理者

     $ python manage.py createsuperuser

導出資料

     $ python manage.py dumpdata blog > blog.json

導入資料

     $ python manage.py loaddata blog.json

項目環境終端

     $ python manage.py shell

資料庫指令行

     $ python manage.py dbshell

檢視更多指令

     $ python manage.py

建立一個簡單例子的流程

環境:windows7 + python3.4 + django1.8

====> Creating a project

     $ django-admin startproject mysite

     $ cd mysite

====> Database setup

     $ edit mysite\settings.py

     $ python manage.py migrate

====> The development server (http://127.0.0.1:800)

     $ python manage.py runserver

====> Creating models

     $ python manage.py startapp polls

     $ edit polls\models.py

====> Activating models

     $ python manage.py makemigrations polls

     $ python manage.py sqlmigrate polls 0001

【Remember the three-step guide to making model changes:

    Change your models (in models.py).

    Run python manage.py makemigrations to create migrations for those changes

    Run python manage.py migrate to apply those changes to the database.】

====> Playing with the API

     $ python manage.py shell

====> Change models.py

====> Play the API again