1. 程式人生 > >Django開發個人部落格網站——5、建立第一個app

Django開發個人部落格網站——5、建立第一個app

1、建立app

django中的一個app就是一個小的專案,我們通過startapp命令即可建立。可以進入虛擬環境myblog中執行:

python manage.py startapp myblog

也可以直接在pycharm中的Tools下的run manage.py task下直接執行命令:

startapp myblog

這樣就可以創建出一個根目錄下的名為myblog的app了。然後,我們將其加入到setting.py中的INSTALLED_APPS中,如下:

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth'
, 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'myblog', #新建立的app ]

2、遷移資料庫

Tools下的run manage.py task下依次直接執行命令:

makemigrations

migrate

當我們執行了 makemigrations 後,Django 在 myblog 應用的 migrations\ 目錄下生成了一個 0001_initial.py 檔案,這個檔案是 Django 用來記錄我們對模型做了哪些修改的檔案。

不過此時還只是告訴了 Django 我們做了哪些改變,為了讓 Django 真正地為我們建立資料庫表,接下來又執行了migrate 命令。Django 通過檢測應用中 migrations\ 目錄下的檔案,得知我們對資料庫做了哪些操作,然後它把這些操作翻譯成資料庫操作語言,從而把這些操作作用於真正的資料庫。

經過這兩項操作後,我們開啟navicat中的myblog資料庫表單,發現多瞭如下表單,這些表單為Django 自身還內建的很多應用,這些應用本身也是需要儲存資料的。

auth_group, 
auth_group_permissions, 
auth_permission, 
auth_user, 
auth_user_groups, 
auth_user_user_permissions, 
django_admin_log, 
django_content_type
, django_migrations, django_session

我們在執行遷移資料庫的操作時,發現會彈出如下警告:

WARNINGS:
?: (1_8.W001) The standalone TEMPLATE_* settings were deprecated in Django 1.8 and the TEMPLATES dictionary takes precedence. You must put the values of the following settings into your default TEMPLATES dict: TEMPLATE_DIRS.

這是因為django版本的問題產生的,解決方法按照提示操作,開啟setting.py,將如下語句刪掉:

TEMPLATE_DIRS = (os.path.join(BASE_DIR,  'templates'),)

並將templates的位置新增到TEMPLATE中:

TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        'DIRS': [os.path.join(BASE_DIR,  'templates'),],
        ...

即可。

——————————————————————————————————————————

專案的完整程式碼:django_blog
覺得有用的歡迎給個star。