Django實(shí)戰(zhàn):搭建個(gè)人博客(一)
[TOC]
1. 配置軟件環(huán)境
打開(kāi)命令行,使用conda命令新建一個(gè)Python環(huán)境用于項(xiàng)目井辜,并安裝對(duì)應(yīng)版本的Django:
安裝成功:
打開(kāi)Pycharm新建項(xiàng)目:
終端運(yùn)行以下命令啟動(dòng)Django:
py manage.py runserver
打開(kāi)默認(rèn)的本地服務(wù)器地址看到以下頁(yè)面表明Django啟動(dòng)成功:
2. 創(chuàng)建應(yīng)用和數(shù)據(jù)庫(kù)模型
終端運(yùn)行:
py manage.py startapp blog
在項(xiàng)目根目錄下生成了blog應(yīng)用相關(guān)的文件:
新生成的應(yīng)用還需要在settings.py中注冊(cè):
編寫(xiě)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) # 多對(duì)一關(guān)系咧最;級(jí)聯(lián)刪除的策略
tag=models.ManyToManyField(Tag) # 多對(duì)多關(guān)系
author=models.ForeignKey(User,on_delete=models.CASCADE,blank=True)
終端依次運(yùn)行命令進(jìn)行數(shù)據(jù)庫(kù)遷移:
py manage.py makemigrations
py manage.py migrate
創(chuàng)建管理員賬戶,按照提示輸入用戶名御雕、郵箱等相關(guān)信息矢沿,保存好密碼rick137:
py manage.py createsuperuser
在blog/admin.py
中注冊(cè)數(shù)據(jù)庫(kù)模型,以在管理界面顯示:
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ù)庫(kù)管理入口則成功:
可以通過(guò)管理入口在數(shù)據(jù)庫(kù)中添加類別闽坡、文章等數(shù)據(jù):
先寫(xiě)到這里栽惶,接下來(lái)開(kāi)發(fā)頁(yè)面的前端顯示。