【第十五周 第 2 节】Django实战(一)

本文介绍了如何使用Hexo框架选择和定制博客模板,创建开发环境,包括虚拟环境的建立,依赖的批量安装与管理。同时,讲解了Django中配置静态资源的方法,如设置STATIC_URL和STATICFILES_DIRS,以及在urls中配置静态资源访问路径。此外,还展示了如何创建文章模型,更新视图层以显示文章关键信息,如创建和更新时间、长度和预估阅读时间,并添加路由。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

第十五周-第二节课

选择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())
    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值