欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

基于django的个人博客网站建立(一)

程序员文章站 2022-10-05 19:34:50
基于django的个人博客网站建立(一) 前言 之前基于hexo和github page搭建过一个博客网页,后来由于换了个系统,感觉弄的有点麻烦也就没有再去管它了,最近偶然从网上找到了几个模板,感觉还不错,于是想把它用django做后台,做个简单的个人网站玩玩,于是行动开始。 这是模板的样子: 具体 ......

基于django的个人博客网站建立(一)

前言

之前基于hexo和github page搭建过一个博客网页,后来由于换了个系统,感觉弄的有点麻烦也就没有再去管它了,最近偶然从网上找到了几个模板,感觉还不错,于是想把它用django做后台,做个简单的个人网站玩玩,于是行动开始。

这是模板的样子:

基于django的个人博客网站建立(一)

具体内容

首先当然是创建项目了

目录结构是这样的

基于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模板,其他页面继承它改完之后成了这样:

基于django的个人博客网站建立(一)

前端就先弄成这样,然后是后台的设置

在后台要能够添加文章,也就是有文章编辑器,以及其他管理网站的事情,所以主要还是必须设置只有我能登录的账号,于是弄一个登录页面:

基于django的个人博客网站建立(一)

登录页面的视图函数:

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返回给页面

基于django的个人博客网站建立(一)

用户的表结构为:

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()

最后跳转到后台页面

基于django的个人博客网站建立(一)

后台同样用的模板,感觉还不错

总结

今天就主要是创建项目,改改页面,写了一点登录,明天接着完善用户登录以及添加上写文章与展示文章