Django實(shí)戰(zhàn):搭建個(gè)人博客(一)
[TOC]
1. 配置軟件環(huán)境
打開命令行,使用conda命令新建一個(gè)Python環(huán)境用于項(xiàng)目,并安裝對應(yīng)版本的Django:

1
安裝成功:

2
打開Pycharm新建項(xiàng)目:

3
終端運(yùn)行以下命令啟動Django:
py manage.py runserver

image
打開默認(rèn)的本地服務(wù)器地址看到以下頁面表明Django啟動成功:

image
2. 創(chuàng)建應(yīng)用和數(shù)據(jù)庫模型
終端運(yùn)行:
py manage.py startapp blog
在項(xiàng)目根目錄下生成了blog應(yīng)用相關(guān)的文件:

image
新生成的應(yīng)用還需要在settings.py中注冊:

image
編寫blog/models.py,創(chuàng)建三個(gè)模型類Category,Tag和Post:
from django.db import models
from django.contrib.auth.admin import User
# 所有模型都要繼承models.Model以獲得模型方法
class Category(models.Model):
name=models.CharField(max_length=20)
class Tag(models.Model):
name=models.CharField(max_length=20)
class Post(models.Model):
title=models.CharField(max_length=40)
createdTime=models.DateTimeField()
modifiedTime=models.DateTimeField()
body=models.TextField()
excerpt=models.TextField(max_length=400,blank=True) # 允許為空
category=models.ForeignKey(Category,on_delete=models.CASCADE) # 多對一關(guān)系;級聯(lián)刪除的策略
tag=models.ManyToManyField(Tag) # 多對多關(guān)系
author=models.ForeignKey(User,on_delete=models.CASCADE,blank=True)
終端依次運(yùn)行命令進(jìn)行數(shù)據(jù)庫遷移:
py manage.py makemigrations
py manage.py migrate
創(chuàng)建管理員賬戶,按照提示輸入用戶名、郵箱等相關(guān)信息,保存好密碼rick137:
py manage.py createsuperuser

image
在blog/admin.py中注冊數(shù)據(jù)庫模型,以在管理界面顯示:
from django.contrib import admin
from .models import Category,Tag,Post
# Register your models here.
admin.site.register(Tag)
admin.site.register(Post)
admin.site.register(Category)
再次運(yùn)行py manage.py runserver,這次進(jìn)入http://127.0.0.1:8000/admin/,輸入剛剛設(shè)定的用戶名和密碼,若顯示blog應(yīng)用的數(shù)據(jù)庫管理入口則成功:

image
可以通過管理入口在數(shù)據(jù)庫中添加類別、文章等數(shù)據(jù):

image
先寫到這里,接下來開發(fā)頁面的前端顯示。