第十五周-第二节课
选择hexo模板
https://hexo.io/themes/
创建开发环境
-
创建虚拟环境
-
安装依赖
-
批量导出安装的第三方库
pip freeze >> requirements.txt
-
批量安装第三方库
pip install -r requirements.txt
-
静态资源
前端框架最终都会转为HTML, CSS, JS的形式在浏览器中完成渲染
我们只要自定义静态资源中的内容九可以达到自动博客主题的目的
-
在
settings
中配置静态资源-
templates
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', ], }, }, ]
-
static
# http://127.0.0.1:8000/static/xxx.js STATIC_URL = '/static/' STATICFILES_DIRS = [ os.path.join(BASE_DIR, "static"), ]
-
-
在路由
urls
中配置静态资源访问url路径urlpatterns = [ path('admin/', admin.site.urls), ] + static(settings.STATIC_URL)
修改模板文件
略
创建模型层
class Article(models.Model):
title = models.CharField(max_length=200)
text = models.TextField()
url = models.CharField(max_length=200)
update_time = models.DateTimeField(auto_now=True)
create_time = models.DateTimeField(auto_now_add=True)
class Meta:
db_table = "article"
def __str__(self):
return f"<Article {self.title}>"
- 将当前模型添加到admin管理后台中
修改视图层
from django.shortcuts import render
from django.views.generic import TemplateView
from .models import Article
# Create your views here.
import math
class IndexView(TemplateView):
template_name = "index.html"
def get(self, request, *args, **kwargs):
article_list = Article.objects.order_by("-create_time")
for article in article_list:
article.pub_date = article.create_time.strftime("%m-%d").replace("-", "月")
article.length = len(article.text)
article.read_time = math.ceil(len(article.text)/180) if article.text else 0
context = {
"article_list": article_list
}
return self.render_to_response(context)
-
添加路由
path("", IndexView.as_view())