Django搭建自己的博客网站(二)
这里主要讲构建系统数据库Model.
Django搭建博客网站(一)
model
目前就只提供一个文章model和一个文章分类标签model,在post/models.py
中做如下修改:
# models.pyfrom django.db import modelsclass PostTag(models.Model): ???tag_name = models.CharField(max_length=50) ???def __str__(self): ???????return self.tag_nameclass 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.pyfrom post import viewsapp_name=‘post‘urlpatterns=[ ???path(‘‘,views.index,name=‘index‘),]
# post/views.pyfrom django.http import HttpResponsedef 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模板.