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

最后跳转到后台页面

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

总结

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

基于django的个人博客网站建立(一)的更多相关文章

  1. 基于django的个人博客网站建立(三)

    基于django的个人博客网站建立(三) 前言 网站效果可点击这里访问 今天主要完成的是文章在页面的显示以及评论,留言 具体内容 首先我希望主页面是显示我的所有文章,于是在主页面的视图函数中返回了所有 ...

  2. 基于django的个人博客网站建立(二)

    基于django的个人博客网站建立(二) 前言 网站效果可点击这里访问 今天主要完成后台管理员登录的状态以及关于文章在后台的处理 具体内容 首先接上一次内容,昨天只是完成了一个登录的跳转,其他信息并没 ...

  3. 基于django的个人博客网站建立(七)

    基于django的个人博客网站建立(七) 前言 网站效果可点击这里访问 这次在原来的基础上添加或修改一些小功能 具体内容 1.代码高亮 在原来的blog-details.html页面添加下面的代码: ...

  4. 基于django的个人博客网站建立(六)

    基于django的个人博客网站建立(六) 前言 今天主要完成的是项目在腾讯云服务器上ubuntu16.04+django+mysql+uwsig+nginx的部署过程网站效果可点击这里访问 主要内容 ...

  5. 基于django的个人博客网站建立(五)

    基于django的个人博客网站建立(五) 前言 网站效果可点击这里访问 之前鸽了两天,今天继续再写点 主要内容 今天加了个展示照片的功能,就叫他生活记录吧 先建表 class Record(model ...

  6. 基于django的个人博客网站建立(四)

    基于django的个人博客网站建立(四) 前言 网站效果可点击这里访问 今天主要添加了留言与评论在后台的管理和主页文章的分页显示,文章类别的具体展示以及之前预留链接的补充 主要内容 其实今天的内容和前 ...

  7. 基于docker搭建wordpress博客网站平台

    WordPress是使用PHP语言开发的博客平台,用户可以在支持PHP和MySQL数据库的服务器上架设属于自己的网站.也可以把 WordPress当作一个内容管理系统(CMS)来使用. WordPre ...

  8. 【docker构建】基于docker构建wordpress博客网站平台

    WordPress是使用PHP语言开发的博客平台,用户可以在支持PHP和MySQL数据库的服务器上架设属于自己的网站.也可以把 WordPress当作一个内容管理系统(CMS)来使用. WordPre ...

  9. 从零搭建基于golang的个人博客网站

    原文链接 : http://www.bugclosed.com/post/14 从零搭建个人博客网站需要包括云服务器(虚拟主机),域名,程序环境,博客程序等方面.本博客 就是通过这几个环节建立起来的, ...

随机推荐

  1. SpringBoot项目实现文件上传和邮件发送

    前言 本篇文章主要介绍的是SpringBoot项目实现文件上传和邮件发送的功能. SpringBoot 文件上传 说明:如果想直接获取工程那么可以直接跳到底部,通过链接下载工程代码. 开发准备 环境要 ...

  2. 下载安装MariaDB Galera 10.1

    因为无法访问外网, 配置官网的yum无法下载MariaDB Galera(在MariaDB 10.1 及之后内置了Galera, 不像之前那样需要独立安装) 需要在下载的包 MariaDB-10.1. ...

  3. EditPlus常用操作

    EditPlus注册码在线生成 http://www.jb51.net/tools/editplus/ 随意填写个用户名,生成对应的密码就可以使用editplus了 EditPlus常用快捷键 编代码 ...

  4. mysql服务器查询慢原因分析方法

    mysql数据库在查询的时候会出现查询结果很慢,超过1秒,项目中需要找出执行慢的sql进行优化,应该怎么找呢,mysql数据库提供了一个很好的方法,如下: mysql5.0以上的版本可以支持将执行比较 ...

  5. java环境安装(win7)

    首先,你应该已经安装了 java 的 JDK 了,笔者安装的是:jdk-7u13-windows-x64 接下来主要讲怎么配置 java 的环境变量,也是为了以后哪天自己忘记了做个备份 1.进入&qu ...

  6. flask SQLAlchemy query.filter_by 常用操作符

    常用的filter操作符 下面的这些操作符可以应用在filter函数中 equals: query.filter(User.name == 'ed') not equals: query.filter ...

  7. 封装一个帮助类来写文件到android外置存储器上

    项目地址:点击打开 项目简介:写文件到android外置存储器的一个帮助类,和它的demo程序 它是如何工作的呢? 1.创建 AppExternalFileWriter 对象并传递context(上下 ...

  8. 记秋招第一个offer:去哪儿

    9月17日 网申去哪儿,没有内推,因为网申了就不能内推了.难受,内推可以免简历筛选的,这下好了,可能简历直接挂了.我怎么犯了这么低级的错误?还没去搞清楚能不能内推就先傻乎乎地网申了. 9月28日 晚上 ...

  9. VMware Workstation Pro 14注册码,亲测可用

    ** VMware Workstation Pro 14注册码 ** 作者网上搜集整理 作者使用的密钥是: AC5XK-0ZD4H-088HP-9NQZV-ZG2R4 亲测可用 以下密钥未测试 CG5 ...

  10. OpenCV之cvAddWeighted直接C语言实现版addWeighted,应对上下平滑融合拼接

    关于OpenCV中的cvAddWeighted的介绍可参见<opencv中的cvAddWeighted函数> cvAddWeighted有个问题,它只能实现两张图片的直接融合,往往产生明显 ...