最近使用Django+Nginx+UWSGI的方式,实现了一个简单的个人博客项目。
主要功能包括注册、登录、发表博客、发表评论、博客列表及博客搜索、博客主页显示等等。
本文介绍首先实现的功能,也就是最基本的登录和注册功能。
效果图
首先看一下完成后的效果,以便于理解。
登录页面:
注册页面
配置文件中添加相关配置信息
修改settings.py文件
INSTALLED_APPS = [
# 添加验证码
'captcha',
]
DATABASES = {
# 数据库使用的是Mysql
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'blog_ex',
'USER': 'root',
'PASSWORD': '123456',
'HOST': '127.0.0.1',
'PORT': 3306,
}
}
# 设置静态资源路径
STATICFILES_DIRS = [
os.path.join(BASE_DIR, 'static')
]
# 图形验证码设置
# 格式
CAPTCHA_OUTPUT_FORMAT = u'%(text_field)s %(image)s %(hidden_field)s'
# 干扰项设置
CAPTCHA_NOISE_FUNCTIONS = (
'captcha.helpers.noise_null',
'captcha.helpers.noise_arcs',
'captcha.helpers.noise_dots',
)
# 图片样式
CAPTCHA_IMAGE_SIZE = (100, 30)
CAPTCHA_BACKGROUND_COLOR = '#ffffff'
# 使用随机字符
CAPTCHA_CHALLENGE_FUNCT = 'captcha.helpers.random_char_challenge'
# 字符个数
CAPTCHA_LENGTH = 4
CAPTCHA_TIMEOUT = 1
还有几个注意事项:
- 最好使用一个新建的数据库来完成本项目。
- 如果代码执行过程中报错信息为缺少依赖库,那么根据报错信息进行安装即可。
创建模型,并在数据库中生成表
修改models.py文件,创建类,每个类对应数据库中的一张表。
from django.contrib.auth.models import AbstractUser
from django.db import models
# 用户信息
class UserRe(AbstractUser):
phones = models.CharField(max_length=20, null=True)
email = models.EmailField(null=True)
gender = models.CharField(max_length=10)
class Meta(AbstractUser.Meta):
db_table = 'user_re'
# 博客分类
class BlogCategory(models.Model):
cid = models.IntegerField(primary_key=True)
cname = models.CharField(max_length=60)
blogcount = models.IntegerField(default=0)
class Meta:
db_table = 'blog_category'
# 博客信息
class BlogPost(models.Model):
id = models.IntegerField(primary_key=True)
author = models.CharField(max_length=60)
title = models