基於django的我的博客網站創建(一)
前言
網站效果可點擊這裏訪問css
以前基於hexo和github page搭建過一個博客網頁,後來因爲換了個系統,感受弄的有點麻煩也就沒有再去管它了,最近偶然從網上找到了幾個模板,感受還不錯,因而想把它用django作後臺,作個簡單的我的網站玩玩,因而行動開始。html
這是模板的樣子:前端
具體內容
首先固然是建立項目了python
目錄結構是這樣的mysql
建立了一個blogapp用來作前端展現,backendapp作後臺,後臺主要就是發佈下博客,改改其餘內容啥的,其餘功能之後慢慢加git
接下來就是很無腦的把模板的文件拖進來,好比靜態文件放到目錄下,模板頁面放到templates下,而後再把頁面本來的引入的css,js連接改爲本身項目下的位置。github
而後是settings的修改:sql
添加下靜態文件的目錄數據庫
STATIC_URL = '/static/' STATICFILES_DIRS = [ os.path.join(BASE_DIR, 'statics'), ]
註冊下appdjango
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()
最後跳轉到後臺頁面
後臺一樣用的模板,感受還不錯
總結
今天就主要是建立項目,改改頁面,寫了一點登陸,明天接着完善用戶登陸以及添加上寫文章與展現文章