Django 是由Python開發的一個免費的開源web框架,能夠用於快速搭建網站。
ps:web框架,也叫web應用框架,提供數據庫接口,標準樣板,會話管理等來支持網站,網絡應用,服務的開發。
安裝django
下載安裝包Django-1.9.6.tar.gz
tar zxvf Django-1.9.6.tar.gz
cd Django-1.9.6
python setup.py install
也能夠經過pip直接安裝:pip install django==1.9.6
安裝結束後進入Python交互界面查當作功與否
開始建立項目
目錄結構
manage.py mypro
app01 manage.py mypro
django主要文件:
manage.py:配置管理的接口
urls.py:網址入口,關聯到對應的views.py中的一個函數,訪問網址就對應一個函數。
settings.py:配置文件
admin.py:配置後臺管理界面
views.py:處理用戶發出的請求,從urls.py中對應過來, 經過渲染templates中html文件將顯示內容輸出到網頁。
models.py:定義類,每一個類對應數據庫中的一張表。
admin.py:配置後臺管理界面
templates文件夾:存放網頁模板
配置數據庫(以mysql爲例)
__init__.py settings.py urls.py wsgi.py
編輯settings.py文件
加載app:
啓動服務,能夠指定端口,默認監聽本機8000端口, 0.0.0.0表明監聽全部網絡接口和IP地址,即其餘電腦均可以訪問
Performing system checks...
System check identified no issues (0 silenced).
July 13, 2016 - 07:54:06
Django version 1.9.6, using settings 'mypro.settings'
Quit the server with CONTROL-C.
設計model(數據庫表)
class Server(models.Model):
hostname=models.CharField(max_length=50,unique=True)
ip=models.GenericIPAddressField(unique=True)
passwd=models.CharField(max_length=20)
cpu=models.CharField(max_length=20)
disk=models.CharField(max_length=10)
memory=models.CharField(max_length=10)
os=models.CharField(max_length=20,default='CentOS 6.5',verbose_name='Operation System')
def __str__(self):
return self.hostname
將model註冊到管理頁面
from django.contrib import admin
from app01.models import *
# Register your models here.
class Server_show(admin.ModelAdmin):
search_fields=('hostname',) # 搜索框
list_display=("hostname","ip","passwd","cpu","disk","memory","os",) #顯示的字段
admin.site.register(Server,Server_show)
同步數據庫,在數據庫中建立對應表 ORM
Migrations for 'app01':
0001_initial.py:
- Create model Server
BEGIN;
--
-- Create model Server
--
CREATE TABLE `app01_server` (`id` integer AUTO_INCREMENT NOT NULL PRIMARY KEY, `hostname` varchar(50) NOT NULL UNIQUE, `ip` char(39) NOT NULL UNIQUE, `passwd` varchar(20) NOT NULL, `cpu` varchar(20) NOT NULL, `disk` varchar(10) NOT NULL, `memory` varchar(10) NOT NULL, `os` varchar(20) NOT NULL);
COMMIT;
Operations to perform:
Apply all migrations: admin, contenttypes, app01, auth, sessions
Running migrations:
Rendering model states... DONE
Applying app01.0001_initial... OK
此時同步結束,在數據庫中會生成對應的表,表名爲APP的名稱+"_"+類名,會自動增長自增加的id字段,而且設爲主鍵,即id=models.AutoField(primary_key=True).若自定義了主鍵,將不會自動添加id列
表結構與建立model時指定的同樣
設置後臺管理超級用戶
Username (leave blank to use 'root'):
Email address:
Password:
Password (again):
Superuser created successfully.
訪問後臺管理系統
前端也能夠顯示
如今開始前端頁面的編寫
建立模板
在settings.py中定義模板路徑
os.path.join(BASE_DIR, 'templates')
在templates下建立模板文件index.html
<!DOCTYPE html>
<html>
<body>
<p>
hello world!
</p>
</body>
</html>
建立視圖函數
def index(request):
return render(request,'index.html')
設置路由
這樣,一個基於django的MTV模式的網站就搭建起來了。