牛刀小試
- 簡談Django
- 搭建開發環境
- 作一個簡單的博客網站
寫在開始以前:
要求:python基礎、HTML基礎、瀏覽器上網的基本原理
如下環境爲:windows10專業版 64位 、Django1.11.1 、python2.79
簡談Django
官方介紹:
Django是一個高級的Web框架,鼓勵快速開發和簡潔,有着實用的設計。
由經驗豐富的開發人員構建,解決了大部分Web開發的麻煩,所以使用Django能夠專一於編寫本身所須要的應用程序,而不須要從新建立輪子。
Django是免費的和開放源代碼的。
搭建開發環境
2.在 DOWNLOAD 頁面點擊
the FAQ,瞭解 Django不一樣版本所支持的python版本
根據 the FAQ 頁面的內容決定須要安裝的對應的 Django 和 python 的版本
4.安裝Django
方法一(pip安裝):在windows DOS界面下,運行
pip install Django==版本
pip install Django==1.11.1
方法二(源碼安裝):在官網DOWNLOAD頁面下載tar.gz包而後解壓
在DOS界面下進入解壓後的源碼包的目錄,運行 python setup.py install
方法三(git下載):
git clone https://github.com/django/django.git
5.查看Django是否安裝成功
DOS界面下 運行
python -m django --version
或者進入python IDE界面下導入django模塊
DOS界面下運行
python
import django
6.編譯器,pycharm 的安裝,進入pycharm的官網的 DOWNLOAD 頁面下載
作一個簡單的博客網站
1.建立項目,DOS界面下運行 django-admin startproject 項目名稱,此時在該目錄下將多一個以項目名稱爲名的文件夾
2.切換之myblog目錄下,運行python manage.py查看命令幫助
3.在myblog目錄下,運行
python manage.py runserver 啓動 django 服務
服務啓動成功將顯示如下界面
5.修改端口號
6.目錄文件簡介
├── manage.py 與項目進行交互的命令行工具集的入口,即項目管理器。
└── myblog
├── __init__.py python中聲明模塊的文件
├── settings.py 該Django項目的設置與配置文件
├── urls.py url配置文件
└── wsgi.py python服務器網關接口,python應用與web服務器之間的接口
7.建立應用
建立步驟:進入項目中manage.py的同級目錄
運行
python manage.py startapp blog
添加應用名到 setting.py 中的 INSTALLED_APPS 裏
8.應用目錄介紹
建立第一個頁面(響應)
編輯views.py
每一個響應對應一個函數,函數必須返回一個響應,
函數必須存在一個參數,通常約定爲request
每一個響應函數對應一個URL
編輯URL(第一種URL配置)
每一個URL都以URL的函數形式寫出來
URL函數放在urlpatterns列表中
URL函數三個參數:
URL(正則)、對應方法、名稱
DOS界面下啓動服務
打開瀏覽器輸入 127.0.0.1:8000/index
包含其餘URL
在根 urls.py 中引入 include
在根APP目錄建立urls.py文件,格式與根urls.py相同
根urls.py中urls函數第二個參數改成 include('blog.urls')
注意事項:
根 urls.py 針對APP配置的URL名稱是該APP全部url的總路徑
配置url時注意正則表達式結尾符$和/
打開瀏覽器輸入 127.0.0.1:8000/blog
9.Templates
什麼是Templates?HTML文件,使用了Django模板語言(Django Templates Language,DTL),也可使用第三方語言,修改setting.py中TEMPLATES中的BACKEND的值
開發第一個Templates
在APP的根目錄下建立名叫 Templates 的目錄,在該目錄下建立HTML文件
在views.py中返回render()
打開瀏覽器,輸入
DTL的簡單使用
render()函數中支持一個dict類型參數,
該字典是後臺傳遞到模板的參數,鍵爲參數名
在模板中使用 {{參數名}} 來直接使用
*Django查找Templates
Django按照INSTALLED_APPS中的添加順序查找Templates,不一樣APP下T emplates目錄下的同名html文件會形成衝突
解決方案:
在APP下的Templates目錄下建立以APP名爲名稱的目錄,將HTML文件放入新建立的目錄下,而後修改對應的相關urls文件
Models是什麼?
一般,一個Model對應數據庫的一張數據表
Django中Models以類的形式表現,
它包含了一些基本字段以及數據的一些行爲
在應用根目錄下建立models.py,並引入models模塊,Django已自動完成
建立類,繼承models.Model,該類即一張數據表
字段建立,字段即類裏面的屬性(變量)
attr = models.CharField(max_length=64)
生成數據表
命令行中進入manage.py同級目錄,執行
python manage.py makemigrations app名(可選)
再執行
python manage.py migrate
查看
Django會自動在 app/migrations/ 目錄下生成移植文件
執行
python manage.py sqlmigrate 應用名 文件ID //查看SQL語句
查看並編輯db.sqlite3,使用第三方軟件sqlite expert personal(輕量級徹底免費)
頁面呈現數據
後臺步驟:編輯views.py中的import models
article = models.Article.objects.get(pk=1)
前端步驟:模板可直接使用對象以及對象的‘.’操做
{{ article.title }}
打開瀏覽器測試
Admin簡介
什麼是Admin?一個Django自帶的後臺管理系統
配置Admin
建立用戶(建立超級用戶)
python manage.py createsuperuser
WEB登錄後臺 127.0.0.1:8000/admin
修改setting.py中的 LANGUAGE_CODE='zh_Hans' ,使後臺界面以中文界面呈現
在應用下admin.py中引入自身的models模塊(或裏面的模型類)
編輯admin.py:添加admin.site.register(Article)
建立數據默認顯示名稱
在Artcile類下添加一個方法(在models.py中)
根據python版本選擇__str__(self)或 __unicode__(self),通常選擇__unicode__(self)
return self.title
完善博客頁面
修改views.py
修改.html文件
測試
完善博客文章頁面:編輯views.py,建立相應的html文件,再修改應用下的urls.py
template中能夠用"{% url 'app_name:url_name' param %}"
再配URL
url 函數的名稱參數
根urls,寫在include()的第二個參數位置,namespace='blog'
應用下則寫在url()的第三個參數位置,name='article'
主要取決因而否使用include引用了另外一個url配置文件
修改html文件中的a標籤
編輯html文件
編輯views.py
編輯urls.py
再編輯html文件
完善編輯文章頁面
編輯views.py
編輯urls.py
編輯html文件
Tempaltes過濾器
什麼是過濾器?
寫在模板中,屬於Django模板語言
能夠修改模板中的變量,從而顯示不一樣的內容
怎麼使用?
{{ value | filter }}
例子:{{ list_nums | length }}
過濾器可疊加:{{ value | filter1 | filter2 | …… }}
修改.html文件
Django shell
什麼是Django shell?
它是一個python的交互式命令行程序,它自動引入了咱們的項目環境
咱們可使用它與咱們的項目進行交互
如何使用?
python manage.py shell
from blog.models import Article
Article.objects.all()
有什麼做用?
可使用Django shell來進行一些調試工做
測試未知的方法
class ArticleAdmin(admin.ModelAdmin)
註冊:admin.site.register(Article,ArticleAdmin)
顯示其餘字段
list_display = ('title','content','pub_time')
list_filter = ('pub_time')
list_display同時支持tuple和list
編輯models.py
移植數據(必定要作)
python manage.py makemigrations
python manage.py migrate
python manage.py runserver