基於python3.7+Django2.1.8開發web應用程式(入門2)

1.2建立應用程式

新建一個powershell命令視窗,切換到manage。py所在目錄,啟用該虛擬環境(看1。1。4如何啟用)。

> python manage。py startapp learning_logs (現在多出了了learning_logs資料夾)

希望大家認真學習,做好筆記,找出規律,理解什麼是MVC模型!!!

1.2.1 定義模型

修改models。py中的內容,新增以下內容(程式碼建議手打一遍,複製貼上容易出現格式錯誤!)

嘗試自己理解程式碼的意思,探索中熟悉Django框架。

class Topic(models。Model): “”“使用者學習主題”“” text = models。CharField(max_length=200) date_added = models。DateTimeField(auto_now_add=True)  def __str__(self):“”“”返回模型的字串表示“”“ return self。text

1.2.2 啟用模型

修改settings。py中的內容,新增以下內容,

也就是把你的web應用程式的名字告訴Django

(加粗部分):

INSTALLED_APPS = [    ‘django。contrib。admin’,    ‘django。contrib。auth’,    ‘django。contrib。contenttypes’,    ‘django。contrib。sessions’,    ‘django。contrib。messages’,    ‘django。contrib。staticfiles’, #我的應用程式    ‘learning_logs’,]

讓Django修改資料庫,使其能夠儲存與模型Topic相關的資訊。

> python manage。py makemigrations learning_logs

執行上述程式碼,出現以下資訊

↓*****************************************************************************

Migrations for ‘learning_logs’:

learning_logs\migrations\0001_initial。py

- Create model Topic

↑*****************************************************************************

> python manage。py migrate   (利用Django修改資料庫)

↓*****************************************************************************

Operations to perform:

Apply all migrations: admin, auth, contenttypes, learning_logs, sessions

Running migrations:

Applying learning_logs。0001_initial。。。 OK

↑*****************************************************************************

1.2.3 Django 管理網站

1、建立超級使用者

> python manage。py createsuperuser (按如下步驟進行填寫即可)

執行上述命令後出現如下資訊,自己填寫即可。

↓*****************************************************************************

Username: 11_admin

Email address: 569261093@qq。com

Password:(輸入密碼是看不出變化的)

Password (again):

This password is too short。 It must contain at least 8 characters。

This password is too common。

This password is entirely numeric。

Bypass password validation and create user anyway? [y/N]: y

Superuser created successfully。

↑*****************************************************************************

2、向管理網站註冊模型

在learning_logs目錄下找到admin。py檔案,新增如下內容

from learning_logs。models import Topic

admin。site。register(Topic)

在網站中輸入http://localhost:8000/admin/ 可以看到如下畫面

基於python3.7+Django2.1.8開發web應用程式(入門2)

初次建立頁面影象

輸入賬戶密碼即可進入一下頁面:

基於python3.7+Django2.1.8開發web應用程式(入門2)

輸出賬號密碼後出現此頁面

3、新增主題

開啟網頁新增主題即可,自己新增主題,看看會不會出現錯誤。

1.2.4 定義模型Entry

在models。py中新增以下程式碼:class Entry(models。Model):”“”學到的有關某個主題的具體知識“”“ topic = models。ForeignKey(Topic,on_delete=models。CASCADE) text = models。TextField() date_added = models。DateTimeField(auto_now_add=True) class Meta: verbose_name_plural = ‘entries’ def __str__(self): ”“”返回模型的字串表示“”“ return self。text[:50] + ”。。。“

1.2.5 遷移模型Entry

> python manage。py makemigrations learning_logs

> python manage。py migrate   (出現如下資訊,表明遷移順利)

↓*****************************************************************************

Operations to perform:

Apply all migrations: admin, auth, contenttypes, learning_logs, sessions

Running migrations:

Applying learning_logs。0002_entry。。。 OK

↑*****************************************************************************

1.2.6 向管理網站註冊Entry

新增admin.py內容如下:

from learning_logs。models import Topic,Entryadmin。site。register(Entry)

返回到http://localhost:8000/admin/,將看到learning_logs下列出了Entries。如果沒有看到,重新啟動專案(檢視1。1。8),再進入網站。

1.2.7 Django shell

shell會話示例:

> python manage。py shell       (啟動一個python直譯器)>>> from learning_logs。models import Topic

(匯入learning_logs。models中的模型Topic)

>>> Topic。objects。all() (使用此方法獲取Topic的所有例項)

*****以下內容演示如何檢視分配給每個主題物件的ID:

>>> topics = Topic。objects。all()>>> for topic in topics:。。。     print(topic。id,topic) (執行程式碼此處容易出錯,print()函式一定要先tab再寫print()函式)。。。1 第一個學習筆記 (第一個學習筆記是我自己新增的主題,您可以看見你自己新增的主題)

******以下內容演示如何獲取物件並檢視其任何屬性:

>>> t = Topic。objects。get(id=1)>>> t。text‘第一個學習筆記’>>> t。date_addeddatetime。datetime(2020, 5, 18, 6, 32, 35, 123974, tzinfo=

1.3 建立網頁:學習筆記主頁

使用Django建立網頁的三個階段:1、定義URL;2、編寫檢視;3、編寫模板。

1.3.1 對映URL(容易出錯!!!執行出錯聯絡劉凱569261093)

*****learning_log中urls。py新增以下內容:

from django。contrib import adminfrom django。urls import pathfrom django。conf。urls import include,url

錯誤示範:(錯誤原因,Django更新2。0後用了更方便的path()函式) 大家可以嘗試執行錯誤程式碼,看看提示什麼錯誤。urlpatterns = [    #path(‘admin/’, admin。site。urls),    url(r‘^admin/’,include(admin。site。urls)),     url(r‘’,include(‘learning_logs。urls’,namespace=‘learning_logs’)),]正確程式碼:urlpatterns = [ path(‘admin/’, admin。site。urls), path(‘users/’,include(‘users。urls’,namespace=‘users’)), path(‘’,include(‘learning_logs。urls’,namespace=‘learning_logs’)), ]

*****learning_logs中urls。py新增以下內容:

”“”定義learning_logs的URL模式“”“

from django。conf。urls import urlfrom 。 import viewsurlpatterns = [#主頁url(r‘^$’,views。index,name=‘index’),]

1.3.2 編寫檢視

*****learning_logs資料夾中views。py檔案新增以下內容:

from django。shortcuts import render

# Create your views here。def index(request): ”“”學習筆記主頁“”“ return render(request,‘learning_logs/index。html’)

1.3.3 編寫模板

*****learning_logs資料夾中新建資料夾templates,在此資料夾中再新建一個檔案集learning_logs,在此資料夾中建立檔案index。html,新增以下程式碼:

建立網頁

如果看到此頁面,說明您已成功建立網頁。

注:重新執行服務(1.1.8),如果提示錯誤將錯誤內容發在評論區。

至此,大家都會初步建立網頁了,希望大家能夠總結用Django建立網頁的大致過程及其構建網頁的基本框架。