基于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. (转)不看绝对后悔的Linux三剑客之awk实战精讲

    原文:http://blog.51cto.com/hujiangtao/1923930 一.Linux三剑客之awk命令精讲 第1章 awk基础入门 1.1 awk简介 awk不仅仅时linux系统中 ...

  2. spring boot注入error,Consider defining a bean of type 'xxx' in your configuration问题解决方案

    经常出现这问题一定是非spring生态圈的@标签 没被spring引入,如mybatis等 因为在默认情况下只能扫描与控制器在同一个包下以及其子包下的@Component注解,以及能将指定注解的类自动 ...

  3. A light-weight client-side OAuth library for Java

    这个是一个Github上的开源项目-Signpost,主要封装了一些OAuth认证类的方法,项目地址:电极打开 Signpost 什么是Signpost Signpost是一种非常容易.直观的HTTP ...

  4. 关于安卓visualizer的用法

    看别人显示播放wav文件显示频谱写的代码都是断断续续的,在这里我贴了完整的代码,给有需要的人做参考,显示频谱还没有完成,不知道怎么弄,已经可以得到byte[] fft数据了,参考别人的写法也可以开方取 ...

  5. winform 自适应屏幕分辨率具体操作和注意事项

    第一步:先借助一个类文件 AutoSizeFormClass.cs class AutoSizeFormClass { public struct controlRect { public int L ...

  6. iOS-加载数据的实现-MJRefresh

    使用CocoaPods加载三方库: pod 'MJRefresh' MJRefresh类结构图: 具体实现方法和效果图: The drop-down refresh 01-Default self.t ...

  7. django ORM 简单示例简绍

    简单 models 操作 class Host(models.Model): nid = models.AutoField(primary_key=True) #Nid为主键 hostname = m ...

  8. 工作中碰到的css问题解决方法

    好久都没来这写东西了,都长草了.刚解决的两个小问题,先记下来 textarea横向没有滚动条加上 wrap="off"这个属性 英文单词不断行加上这个 word-break:bre ...

  9. X86/X64 函数调用约定

    C 语言有 __cdecl.__stdcall.__fastcall.naked.__pascal. C++ 语言有 __cdecl.__stdcall.__fastcall.naked.__pasc ...

  10. webpack打包过程如何调试?

    本文适用于已经会使用webpack的前端开发人员,但是想进一步了解webpack细节和进阶. 首先请读者按照我前一篇文章 Webpack 10分钟入门介绍的步骤,在本地搭建一个webpack的hell ...