基於django的個人博客網站建立(一)


基於django的個人博客網站建立(一)

前言

網站效果可點擊這里訪問


之前基於hexo和github page搭建過一個博客網頁,后來由於換了個系統,感覺弄的有點麻煩也就沒有再去管它了,最近偶然從網上找到了幾個模板,感覺還不錯,於是想把它用django做后台,做個簡單的個人網站玩玩,於是行動開始。

這是模板的樣子:

具體內容

首先當然是創建項目了

目錄結構是這樣的

創建了一個blogapp用來做前端展示,backendapp做后台,后台主要就是發布下博客,改改其他內容啥的,其他功能以后慢慢加

接下來就是很無腦的把模板的文件拖進來,比如靜態文件放到目錄下,模板頁面放到templates下,然后再把頁面原本的引入的css,js鏈接改成自己項目下的位置。

然后是settings的修改:

添加下靜態文件的目錄


STATIC_URL = '/static/'
STATICFILES_DIRS = [

os.path.join(BASE_DIR, 'statics'),

]

注冊下app


INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'blog',
    'backend',
]

順帶把數據庫的配置也弄了


DATABASES = {
    'default': {
    'ENGINE': 'django.db.backends.mysql',
    'NAME':'myblog',
    'USER': 'root',
    'PASSWORD': '******',
    'HOST': '127.0.0.1',
    'PORT': '3306',
    }
}

接下來先把頁面改吧改吧,改成像自己的,並弄成模板弄成頁頭頁尾的base模板,其他頁面繼承它改完之后成了這樣:

前端就先弄成這樣,然后是后台的設置

在后台要能夠添加文章,也就是有文章編輯器,以及其他管理網站的事情,所以主要還是必須設置只有我能登錄的賬號,於是弄一個登錄頁面:

登錄頁面的視圖函數:


class baseResponse:
    def __init__(self):
        self.status = True
        self.error_message = None
        self.success_message = None

class Login(View):
    def get(self,request,*args,**kwargs):
        response = baseResponse()
        return render(request,'backend/login.html',{'response':response})

    def post(self,request,*args,**kwargs):
        response = baseResponse()
        form = login_form(request.POST)
        if form.is_valid():
            value_dict = form.clean()
            obj = models.AdminUser.objects.filter(email=value_dict['email']).first()
            if obj:
                if check_password(value_dict['password'],obj.password_hash):

                    return redirect('/backend/index')
                else:
                    response.status = False
                    response.error_message = '郵箱或密碼錯誤'
            else:
                response.status = False
                response.error_message = '郵箱或密碼錯誤'
        else:
            response.status = False
            error_msg = form.errors.as_json()  # 獲取錯誤信息
            error = json.loads(error_msg)
            key_list = error.keys()
            item = ''
            for i in key_list:
                item = i
            message = error[item][0]['message']
            response.error_message = message
        print(response.__dict__)
        return render(request,'backend/login.html',{'response':response})

這里還沒有設置session,只是簡單的跳轉頁面,密碼和用戶名是我自己加的,不能注冊,錯誤信息也會通過response返回給頁面

用戶的表結構為:


class AdminUser(models.Model):
    userName = models.CharField(max_length=16)
    email = models.CharField(max_length=128,unique=True)
    password_hash = models.CharField(max_length=128)

登錄的form類為:


class login_form(forms.Form):
    email = forms.EmailField()
    password = forms.CharField()

最后跳轉到后台頁面

后台同樣用的模板,感覺還不錯

總結

今天就主要是創建項目,改改頁面,寫了一點登錄,明天接着完善用戶登錄以及添加上寫文章與展示文章


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM