Templates介紹
什麼是Templates
- HTML文件;
- 使用了django模板語言(Django Template Language, DTL);
- 可以使用第三方模板(如Jinja2);
- 使用其他模板的方法:
- 在settings.py下,TEMPLATES=[]中的第一句‘BACKEND’值改爲其他模板
步驟
- 在APP的根目錄下創建名叫templates的目錄;
- 在該目錄下創建HTML文件;
- 在views.py中返回render()
render()通常傳遞三個參數:對象本身, html文件, 後臺傳遞到前端的數據;
刷新頁面,如果報錯:
TemplateDoesNotExist at /index/blog/
index.html
解決方法:
#settings.py#
TEMPLATES = [{
‘DIRS’: [os.path.join(BASE_DIR, ‘newApp/templates’)],
}
DTL初步使用
- render()函數中支持一個dict類型參數;
- 該字典是後臺傳遞到模板的參數,key爲參數名;
- 在模板中使用{{參數名}}來直接使用;
注意事項
django查找template的順序:
- django按照INSTALLED_APPS中的添加順序查找templates;
- 不同APP下templates目錄中的同名.html文件會造成衝突;
解決templates衝突方案:
- 在APP的templates目錄下創建以APP名爲名稱的目錄;
- 將html文件放入新創建的目錄下;
Models介紹
django中的models是什麼?
- 通常,一個model對應數據庫的一張數據表;
- django中models以類的形式表現;
- 它包含了一些基本字段以及數據的一些行爲;
ORM
- 對象關係映射(object relation mapping);
- 實現了對象和數據庫之間的映射;
- 隱藏了數據訪問的細節,不需要編寫SQL語句。
步驟
- 在應用根目錄下創建models.py,並引入models模塊;
- 創建類,集成modelsModel,該類即是一張數據表;
- 在類中創建數據表的字段。
字段創建
字段即類裏面的屬性(變量);
attr = models.CharField(max_length=64);
class Article(models.Model):
title = models.CharField(max_length=32,default='title')
conten = models.TextField(null=True)
關於各種字段以及各種字段的可選參數可以參照官方文檔:
https://docs.djangoproject.com/en/1.10/ref/models/fields
步驟
查看
- django會自動在app/migrations/目錄下生成移植文件;
- 執行python manage.py sqlmigrate 應用名 文件id 查看SQL語句;
- 默認sqlite3的數據庫在項目根目錄下db.sqlite3;
生成數據表
- 查看並編輯db.sqlite3
- 使用第三方軟件;
- SQLite Expert Peronal;輕量級,完全免費;
- 插入一條數據;
頁面呈現數據
後臺步驟
views.py中import models
from . import models
def index(request):
article = models.Article.objects.get(pk=1) #獲取主鍵爲1的模型對象
render(request, 'index.html', {'article': article})
前端步驟
模板可直接使用對象以及對象的“.”操作;
{{ article.title}}
{{ article.content }}
Admin簡介
什麼是admin?
- admin是django自帶的一個功能強大的自動化數據管理界面;
- 被授權的用戶可直接在admin中管理數據庫;
- django提供了許多針對admin 的定製功能;
配置admin
創建用戶
python manage.py createsuperuser #創建超級用戶
Username (leave blank to use 'test'): admin
Email address:[email protected]
Password: AnthiLiu99 # django1.9以後不支持創建太過簡單的密碼
Password(again): AnthiLiu99
localhost:8000/admin/ #Admin入口
將管理界面語言改爲簡體中文:修改settings.py中 LANGUAGE_CODE = ’ zh_Hans’
配置應用
在應用下admin.py中引入自身的models模塊(或裏面的模型類);
編輯admin.py:
from .models import Article
admin.site.register(Article) # 把我們的模型類註冊進去
現在刷新一下頁面就可以看到我們創建的內容。
修改數據
點擊Article超鏈接進入Article列表頁面;
點擊任意一條數據,進入編輯頁面修改;
編輯頁面下方一排按鈕可執行相應操作。
修改後臺數據默認顯示名稱
步驟
在Article類下添加一個方法;
根據python版本選擇的 str(self) 或 _unicode(self);
return self.title
def __str__(self): # python 3.x
return self.title