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。