Django开发-Task2快速搭建文章发布的网站
创建项目
django-admin startproject demo
创建APP
python manage.py startapp blog
保证在有manage.py文件夹下运行
1、将新建的APP和项目进行关联
在settings配置文件中修改
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'blog',
]
2、创建超级管理员
python manage.py createsuperuser
但是创建前应该先同步数据库
python manage.py migrate
创建成功后会看到以下界面
在这里插入图片描述
3、修改后台语言
LANGUAGE_CODE = 'zh-hans'
TIME_ZONE = 'UTC'
USE_I18N = True
USE_L10N = True
USE_TZ = True
4、创建表
修改models.py
from django.db import models
# Create your models here.
class Blog(models.Model):
title = models.CharField(max_length=50,verbose_name="标题")
content = models.TextField(verbose_name="文章内容",default=" ")
creat_time = models.DateTimeField(auto_now=True)
count = models.IntegerField(verbose_name="阅读次数",default=0)
class Meta:
verbose_name = "博客管理"
verbose_name_plural = verbose_name
def __str__(self):
return self.title
5、添加到后台
修改admin.py
from django.contrib import admin
# Register your models here.
from .models import Blog
#admin.site.register(Blog)
@admin.register(Blog)
class BlogAdmin(admin.ModelAdmin):
list_display = ("title","creat_time","count")
6、同步到数据库
python manage.py makemigrations
python manage.py migrate
编写页面逻辑
1、添加页面模板文件夹
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [os.path.join(BASE_DIR,"templates")],
'APP_DIRS': True,
'OPTIONS': {
'context_processors': [
'django.template.context_processors.debug',
'django.template.context_processors.request',
'django.contrib.auth.context_processors.auth',
'django.contrib.messages.context_processors.messages',
],
},
},
]
修改views.py文件
# Create your views here.
def index(request):
return render(request,"index.html")
修改utls.py文件
from django.contrib import admin
from django.urls import path
from blog.views import index
urlpatterns = [
path('admin/', admin.site.urls),
path('',index,name = "index"),
]
在templates下创建一个html文件
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>我的首页</title>
</head>
<body>
<h1>欢迎来到我的博客</h1>
<ul>
{% for blog in blogs%}
<li>
<a href="{% url 'read_blog' blog.id %}">{{blog.title}}</a>
</li>
<p> 创建于 {{blog.creat_time}}</p>
{% endfor %}
</ul>
</body>
</html>
访问页面后
添加文章详情界面
新建content.html文件
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>我的首页</title>
</head>
<body>
<a href="/" style="float: right;">回到首页</a>
<h1>{{blog.title}}</h1>
<div>
{{blog.content}}
</div>
</body>
</html>
编写业务逻辑views.py
def read_blog(request,id):
blog = Blog.objects.get(id = id)
return render(request,"content.html",{"blog":blog})
修改urls.py
urlpatterns = [
path('admin/', admin.site.urls),
path('',index,name = "index"),
path("read/<int:id>",read_blog, name = "read_blog"),
]