Django实战——个人博客网站(一)

一周看完Django视频后,用了两天时间做好的

看视频学的进度太快,flask和ajax都不怎么会用了,做好这个项目再回头复习一下。django是刚学完就立马做一个项目巩固学的知识,做WEB项目是真的很便捷
在做博客的时候遇到很多很多麻烦,其中我搞不清楚什么时候要用ajax(这个项目没有用到ajax),json传输,如果我对ajax熟悉的话应该会做的快一点

博客实现的功能:

1.**写博客** (在网页上写完表单提交,存到数据库)

2.**展示博客列表**(写完博客如果不出错,跳转到展示界面,加了一个分页,
每页显示3篇博客,博客的正文限制100字,可以点击博客标题进入博客的详细界面)

3.*博客详细页面* (在这个页面加了游客评论和展示评论功能)

4.**管理博客 - 修改/删除** (点击相应按钮进入管理博客页面,博客以表格的方式呈现 
可以选择 修改博客 或者删除博客)

5.管理评论 - 功能同上

6.在博客展示页面在每一篇的博客下**显示评论数和阅读量**(本来以为是难点,其实很简单就可以实现)

除了博客之外还有其他几个页面

前端借鉴自 模板之家 其他几个界面是介绍我自己和学校,,随便做的。就不介绍了

1.Django框架环境的搭建,简单讲一下

新建一个django项目 我用的是 Linux 新建一个文件夹Django 在该目录下打开终端
命令行输入

#myweb 自定义名字
django-admin startproject myweb

cd myweb 创建一个应用

python3 manage.py startapp index #index 名字随意

在pycharm企业版 open 这个项目
先在settings.py 中注册 index app

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'index',
]

做一下准备工作
改一下settings.py 中的模板
新建一个文件夹 templates

TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        'DIRS': [os.path.join(BASE_DIR,'templates')],

新建一个文件夹static 存放images css js 文件
在 settiings.py 最底下添加STATICFILES_DIRS =


STATIC_URL = '/static/'
STATICFILES_DIRS = (os.path.join(BASE_DIR,'static'),)

语言和时区也改一下吧

LANGUAGE_CODE = 'zh-Hans'

TIME_ZONE = 'Asia/Shanghai'

数据库

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql', #如果用的不是mysql要改 
        'NAME': 'myblog',#数据库名字 在终端进入mysql创建好库
        'USER':'root', 
        'PASSWORD':123456,
        'HOST':'localhost',
        'POST':3306,
        'OPTIONS': {  
      #  因为项目要用到多对多映射,做删除修改的时候会出现问题,加这个属性就OK了
            "init_command": "SET foreign_key_checks = 0;",
        }
    }
}

settings.py 改完了 在 myweb下的 Init.py 修改
不加这个连接数据库会出错

import pymysql
pymysql.install_as_MySQLdb()

接下来去往 myweb --> urls.py

from django.conf.urls import url,include
from django.contrib import admin

urlpatterns = [
    url(r'^admin/', admin.site.urls),
    url(r'^',include('index.urls')),
]

在index文件夹下 新建urls.py

from django.conf.urls import url
from .views import *
urlpatterns =[
  url(r'^index/$',index),
]

Models 创建数据表

在index 下的 modesl.py 中

  1. Blog - 博客 - 博客和分类是一对多 博客和标签是 多对多
  2. catagroy - 分类
  3. Tag - 标签
  4. Comment - 评论 评论和博客 是多对一

db_table 是修改数据库中的表名 本来是xxx_blog 加了 db_table = 'blog’就是现实 blog
verbose_name_plural = ‘博客’ 是在 127.0.0.1/admin后台中显示为中文 不然是 blogs

from django.db import models

# Create your models here.
class Catagory(models.Model):
    """
    博客分类
    """
    name = models.CharField('名称', max_length=30)
    def __str__(self):
        return self.name
    class Meta:
        db_table = 'catagroy'
        verbose_name_plural = '博客分类'
class Tag(models.Model):
    """
    博客标签
    """
    name = models.CharField('名称', max_length=16)
    def __str__(self):
        return self.name
    class Meta:
        db_table = 'tag'
        verbose_name_plural = '博客标签'
class Blog(models.Model):
    """
    博客
    """
    title = models.CharField('标题', max_length=32)
    author = models.CharField('作者', max_length=16)
    content = models.TextField('博客正文')
    created = models.DateTimeField('发布时间', auto_now_add=True)
    catagory = models.ForeignKey(Catagory, verbose_name='分类')
    tags = models.ManyToManyField(Tag, verbose_name='标签')
    commentNum = models.IntegerField('评论数量',default=0)
    readnum = models.IntegerField('阅读量',default=0)
    def __str__(self):
        return self.title
    class Meta:
        db_table = 'blog'
        verbose_name_plural = '博客'
class Comment(models.Model):
    """
    评论
    """
    blog = models.ForeignKey(Blog, verbose_name='博客')
    name = models.CharField('称呼', max_length=16)
    email = models.EmailField('邮箱')
    content = models.CharField('内容', max_length=240)
    created = models.DateTimeField('发布时间', auto_now_add=True)
    def __str__(self):
        return self.content
    class Meta:
        db_table = 'comment'
        verbose_name_plural = '评论'

创建好表后 记得执行

python3 manage.py makemigrations
python3 manage.py migrate

在index 下的 admin.py 中 注册数据表 可以在后台管理

from django.contrib import admin

from .models import *
# Register your models here.
admin.site.register(Catagory)
admin.site.register(Comment)
admin.site.register(Tag)
admin.site.register(Blog)

创建一个超级用户 依次 输入账号 密码 邮箱 创建好后 运行服务

python3 manage.py createsuperuser

没问题的话 跑起来试试

python3 manage.py runserver

在网页上 输入 127.0.0.1/admin 输入刚才的账号密码 进入后台管理数据库
在这里插入图片描述
在这里插入图片描述

将前端页面 导入到 框架中的 templates static 中

一些图片啊 超链接的地址也得改正确了

在这里插入图片描述
讲的半天 都是在做准备工作。。下篇在介绍具体怎么实现的博客的功能吧

发布了9 篇原创文章 · 获赞 25 · 访问量 1614
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 游动-白 设计师: 上身试试

分享到微信朋友圈

×

扫一扫,手机浏览