基于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()
最后跳转到后台页面
后台一样用的模板,感受还不错
总结
今天就主要是建立项目,改改页面,写了一点登陆,明天接着完善用户登陆以及添加上写文章与展现文章