之前呢學(xué)了一點(diǎn)flask, flask是一個(gè)輕量級的web框架, 而Django則是一個(gè)重量級的框架, 和flask一樣, 是為了實(shí)現(xiàn)快速開發(fā)web應(yīng)用, 相比較flask的靈活自由, django顯得有點(diǎn)笨重, 不夠自由, 但是django比較適用于企業(yè)經(jīng)網(wǎng)站的開發(fā), 快速, 可靠, 穩(wěn)定
安裝
在虛擬環(huán)境中使用pip安裝django十分方便, 見識使用virtualenv虛擬環(huán)境來搭建環(huán)境
pip3 install django
創(chuàng)建第一個(gè)項(xiàng)目
在終端運(yùn)行
django-admin startproject mysite
mysite替換成具體的項(xiàng)目名稱, 這樣一個(gè)項(xiàng)目就創(chuàng)建好了, 剛剛創(chuàng)建的項(xiàng)目結(jié)構(gòu)如下:
|-- mysite
| |-- __init__.py
| |-- settings.py
| |-- urls.py
| `-- wsgi.py
|-- manage.py
|-- templates
- 外面的mysites只是一個(gè)容器, 可以重命名為其他也沒有關(guān)系
- manage.py 是一個(gè)命令行工具, 可以實(shí)現(xiàn)與Django項(xiàng)目交互
- 內(nèi)部的mysite目錄實(shí)際上是一個(gè)python包
- settings.py 用來配置django項(xiàng)目
- urls.py 聲明此項(xiàng)目的url,
- wsgi.py 大概是兼容用的吧, 原文是這樣的=>An entry-point for WSGI-compatible web servers to serve your project.
運(yùn)行
python3 manage.py runserver
這樣會(huì)在localhost:8000會(huì)看到一個(gè)默認(rèn)網(wǎng)站, 也可以在運(yùn)行的時(shí)候指定端口號
創(chuàng)建第一個(gè)app
python3 manage.py startapp blog
然后可以看到創(chuàng)建的文件樹:
|-- blog
| |-- __init__.py
| |-- admin.py
| |-- apps.py
| |-- migrations
| | `-- __init__.py
| |-- models.py
| |-- tests.py
| `-- views.py
|-- db.sqlite3
|-- manage.py
|-- mysite
| |-- __init__.py
| |-- __pycache__
| | |-- __init__.cpython-35.pyc
| | |-- settings.cpython-35.pyc
| | |-- urls.cpython-35.pyc
| | `-- wsgi.cpython-35.pyc
| |-- settings.py
| |-- urls.py
| `-- wsgi.py
|-- templates
可以看到多了一個(gè)blog, 其他地方也多了一點(diǎn)東西, 因?yàn)橹斑\(yùn)行過一次, 所以比沒有運(yùn)行過之前多了一點(diǎn)東西, 比如說數(shù)據(jù)庫
這里主要針對blog:
- 首先是migrations, 這個(gè)是關(guān)于數(shù)據(jù)庫遷移的
- admin.py 后臺操作
- apps.py 設(shè)置參數(shù)
- models.py 數(shù)據(jù)庫模型
- tests.py 單元測試
- views.py 視圖