標籤:
主要內容:Django基礎進階之:Django 流程、Django URL、Django Views、Django Models、Django Template、Django Admin
Django 流程(圖片來自大王):
Django URL
url捕獲到的參數總是字串!!!
總的urls.py檔案:
通過include匯入二級(app級)的urls.py處理url
app01下的urls.py檔案:
Django Views
views主要進行邏輯處理,返回情形常見的有三種:
1. HttpResponse
最簡單的HttpResponse:
HttpResponse只能返回字串格式,必要時使用JSON進行轉換。
2. render
render返回的是一個html檔案。
可以使用模板,可以傳入值對模板進行渲染。Django內建的模板渲染引擎比jinja2更強,在settings中可以設定使用什麼模板引擎渲染。
3. redirect
redirect返回的是一個跳轉連結。
Django Models
django 本身提供了非常強大易使用的ORM組件,並且支援多種資料庫,如sqllite,mysql,progressSql,Oracle等。
在settings.py裡面設定資料庫引擎(以最常用的mysql為例):
因為mysqldb模組暫時還不支援Python3,所以先使用pymysql模組代替。
裝好pymysql模組之後,需要在settings.py中設定一下:
建立自己的models:
Python3中使用__str__()代替__unicode__(),返回字串格式的對象,方便我們區分列印出來models對象。
verbose_name_plural:用於設定models在admin中顯示的內容,如果寫成verbose_name,則在Django admin就會在顯示的表名後面自動加上s(英文中的複數的意思)。
from django.db import models# Create your models here.class Publisher(models.Model): name = models.CharField(max_length=30) address = models.CharField(max_length=30) city = models.CharField(max_length=60) state_province = models.CharField(max_length=30) country = models.CharField(max_length=50) website = models.URLField() def __str__(self): return self.name class Meta: verbose_name_plural = "出版社"class Author(models.Model): first_name = models.CharField(max_length=30) last_name = models.CharField(max_length=40) email = models.EmailField() def __str__(self): return "{} {}".format(self.first_name, self.last_name) class Meta: verbose_name_plural = "作者"class Book(models.Model): title = models.CharField(max_length=100) authors = models.ManyToManyField(Author) publisher = models.ForeignKey(Publisher) publication_Date = models.DateField() def __str__(self): return "《{}》".format(self.title) class Meta: verbose_name_plural = "書名"
接下來就是在資料庫中建立表:
在Terminal下使用以下命令:
1. python manage.py makemigrations
2. python manage.py migrate
Django Template
Django Admin
Python之路Day16