基于django的个人博客网站建立(一)
基于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的个人博客网站建立(一)的更多相关文章
- 基于django的个人博客网站建立(三)
基于django的个人博客网站建立(三) 前言 网站效果可点击这里访问 今天主要完成的是文章在页面的显示以及评论,留言 具体内容 首先我希望主页面是显示我的所有文章,于是在主页面的视图函数中返回了所有 ...
- 基于django的个人博客网站建立(二)
基于django的个人博客网站建立(二) 前言 网站效果可点击这里访问 今天主要完成后台管理员登录的状态以及关于文章在后台的处理 具体内容 首先接上一次内容,昨天只是完成了一个登录的跳转,其他信息并没 ...
- 基于django的个人博客网站建立(七)
基于django的个人博客网站建立(七) 前言 网站效果可点击这里访问 这次在原来的基础上添加或修改一些小功能 具体内容 1.代码高亮 在原来的blog-details.html页面添加下面的代码: ...
- 基于django的个人博客网站建立(六)
基于django的个人博客网站建立(六) 前言 今天主要完成的是项目在腾讯云服务器上ubuntu16.04+django+mysql+uwsig+nginx的部署过程网站效果可点击这里访问 主要内容 ...
- 基于django的个人博客网站建立(五)
基于django的个人博客网站建立(五) 前言 网站效果可点击这里访问 之前鸽了两天,今天继续再写点 主要内容 今天加了个展示照片的功能,就叫他生活记录吧 先建表 class Record(model ...
- 基于django的个人博客网站建立(四)
基于django的个人博客网站建立(四) 前言 网站效果可点击这里访问 今天主要添加了留言与评论在后台的管理和主页文章的分页显示,文章类别的具体展示以及之前预留链接的补充 主要内容 其实今天的内容和前 ...
- 基于docker搭建wordpress博客网站平台
WordPress是使用PHP语言开发的博客平台,用户可以在支持PHP和MySQL数据库的服务器上架设属于自己的网站.也可以把 WordPress当作一个内容管理系统(CMS)来使用. WordPre ...
- 【docker构建】基于docker构建wordpress博客网站平台
WordPress是使用PHP语言开发的博客平台,用户可以在支持PHP和MySQL数据库的服务器上架设属于自己的网站.也可以把 WordPress当作一个内容管理系统(CMS)来使用. WordPre ...
- 从零搭建基于golang的个人博客网站
原文链接 : http://www.bugclosed.com/post/14 从零搭建个人博客网站需要包括云服务器(虚拟主机),域名,程序环境,博客程序等方面.本博客 就是通过这几个环节建立起来的, ...
随机推荐
- ZK数据同步
整个集群完成Learner选举后,Learner向Leader发起注册,然后进入数据同步环节,即Leader将learner上缺失的事务请求同步给Learner 1). 获取Learner状态 根据L ...
- 使用AlarmManager定期执行工作
新建一个Service来模拟后台执行的程序,PollingService.java: package com.ryantang.rtpollingdemo; import android.app.No ...
- OS进程同步与通信
信号量机制 信号量用于互斥 P(S) 临界区 V(S) ----- P(S) 临界区 V(S) 生产者消费者: typedef int semaphore //信号量值设置为1就是互斥量 semaph ...
- Bootstrap学习笔记(三)
三.组件 1.图标字体 图标字体本质是文字,而不是图形!可以无限放大或修改颜色. 使用方式:<span class="glyphicon glyphicon-XXX"> ...
- js清除缓存以及jsp缓存[部分常用]
参考: http://bbs.csdn.net/topics/330028896 浏览器缓存机制 http://www.docin.com/p-591569918.html 浏览器缓存的一些问题的 ...
- Java中对jsonArray的排序,使用的是Gson
使用Gson对json解析字符串,转化为json对象. 先上代码: 下面是main方法里面的代码 package testJava; import java.util.ArrayList; impor ...
- SpringBoot的启动报错
1.
- Masonry 等间隔或等宽高排列多个控件
- (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view, typica ...
- 在vim中插入命令行的输出结果
vim是linux中常见的编辑器,这里讲讲如何在vim中插入命令行的输出结果. 基本用法: 在指令模式下运行 :!command ,如!date将日期显示在vim底部,!ls列出当前目录 将命令结果插 ...
- bt5 r3下metasploit连接postgresql数据库
一.查看PostgreSQL使用的端口,默认为7337 #: netstat -tnpl |grep postgres 二.查看Msf配置,里面有默认的用户名和密码 默认配置文件:/opt/metas ...