Django搭建博客网站(二)

Django搭建自己的博客网站(二)

这里主要讲构建系统数据库Model.

Django搭建博客网站(一)

model

目前就只提供一个文章model和一个文章分类标签model,在post/models.py中做如下修改:

# models.py
from django.db import models

class PostTag(models.Model):
    tag_name = models.CharField(max_length=50)

    def __str__(self):
        return self.tag_name

class Post(models.Model):
    post_title = models.CharField(max_length=200)
    pub_date = models.DateField('published date')
    change_date = models.DateField('changed date')
    post_description=models.CharField(max_length=200)
    post_content = models.TextField()
    posttag = models.ManyToManyField(PostTag,blank=True)

    def __str__(self):
        return self.post_title

因为一篇文章可能有多个标签,一个标签下可能也有多篇文章,所以数据表关联关系就使用的多对多关系(ManyToMany).

创建管理员用户

$ python manage.py createsuperuser

设置用户名,邮箱,密码.

现在运行项目可以访问127.0.0.1:8000/admin.

为post注册url

现在还不能访问post app,因为还没有注册url,注册url,首先在post的目录下创建一个urls.py:

# post/urls.py
from post import views
app_name='post'
urlpatterns=[
    path('',views.index,name='index'),
]

# post/views.py
from django.http import HttpResponse

def index(request):
    return HttpResponse('<h1>Hello</h1>')

此时再运行项目就可以访问127.0.0.1:8000/post,从而访问post app的首页了.

后台管理

先得把上面的两个model在admin.py里面注册:

# post/admin.py
# .....

class PostAdmin(admin.ModelAdmin):
    filter_horizontal = ('posttag',)
    
admin.site.register(Post,PostAdmin)
admin.site.register(PostTag)

此时在后台就可以管理文章和文章标签了.

本文到此结束了,下一篇写写view的逻辑和html模板.

posted @ 2018-01-14 23:04  假隐士  阅读(231)  评论(0编辑  收藏  举报