当前位置: 首页 > article >正文

开发实践11_Blog

以下学习 朔宁夫 基于pycharm的网站开发课程笔记。

富文本:

models: content = models.TextField(verbose_name="content")

        或者 content = RichTestUploadingField(default="", verbose_name="content")

setting:    installed_app: "ckeditor", "ckeditor_uploader",   #  富文本编辑器 富文本上传工具

                CKEDITOR_CONFIGS = { 'default': { 'toolbar': 'full', 'height': 300, 'width': 800 } }

                CKEDITOR_UPLOAD_PATH = os.path.join(BASE_DIR, 'static')

                STATIC_URL = '/static/'     

                STATICFILES_DIRS = [os.path.join(BASE_DIR, 'static')]

图片:

models: content = models.ImageField(upload_to='b_i', verbose_name='i') # 会找media路径、创建上传的文件

setting:  MEDIA_ROOT = os.path.join(BASE_DIR, 'static')

演示:

一个图文博客:

              

架构:

主页+详情页。模型:blog。视图类:展示目录+展示详情。

实现:

0 准备富文本工具,资源路径。

INSTALLED_APPS = [
    'ckeditor',
    'ckeditor_uploader',
]

CKEDITOR_CONFIGS = {
    'default': {
        'toolbar': 'full',
        'height': 300,
        'width': 800
    }
}

CKEDITOR_UPLOAD_PATH = os.path.join(BASE_DIR,'static')

STATIC_URL = '/static/'
STATICFILES_DIRS = [
    os.path.join(BASE_DIR, 'static'),
]

MEDIA_ROOT = os.path.join(BASE_DIR, 'static')

1 创建模型。admin注册。后台添加测试数据。        

from django.db import models

from ckeditor_uploader.fields import RichTextUploadingField
from ckeditor.fields import RichTextField


class Blog(models.Model):
    title = models.CharField(max_length=32, unique=False, verbose_name='title')
    abstract = RichTextUploadingField(max_length=64, verbose_name='abstract')
    content = RichTextField(default='', verbose_name='content')
    img = models.ImageField(upload_to='blog_img', verbose_name='img', blank=True)

    class Meta:
        db_table = 'Blogs'
        verbose_name = 'a blog_app'
        verbose_name_plural = 'blogs'

    def __str__(self):
        return f"{self.pk}__{self.title}"

    @classmethod
    def get_one(cls, pk):
        try:
            return cls.objects.get(pk=int(pk))
        except cls.DoesNotExist:
            return None

2 视图类

from django.shortcuts import render
from django.views import View

from blog_app.models import Blog


class BlogHome(View):
    def get(self, request):
        blogs = Blog.objects.all()

        return render(self.request, 'bloghome.html', locals())


class BlogDetail(View):
    def get(self, request, blog_id):
        blog = Blog.get_one(pk=blog_id)
        return render(self.request, 'blogdetail.html', locals())

3 templates

 4 urls


http://www.kler.cn/a/231417.html

相关文章:

  • 详细分析ipvsadm负载均衡的命令
  • Matplotlib | 理解直方图中bins表示的数据含义
  • C++ 并发专题 - 线程安全的单例模式
  • 掌握SEO提升网站流量的关键在于长尾关键词的有效运用
  • 20241116解决在WIN11和ubuntu20.04通过samba共享时出现局域网千兆带宽拉满的情况
  • 算法--“汽车加油”问题.
  • JS - 处理元素滚动
  • IDEA创建Java类时自动添加注释(作者、年份、月份)
  • leetcode-比特位计数
  • STM32搭建开发环境
  • 2024.2.4 awd总结
  • 08-常用集合(容器)
  • ThinkPHP 中使用Redis
  • javascript设计模式之建造者
  • matlab去图像畸变
  • 谷歌seo搜索引擎优化有什么思路?
  • 6个好看的wordpress模板
  • 忍者切水果
  • 14.0 Zookeeper环球锁实现原理
  • electron实现软件(热)更新(附带示例源码)
  • HTML 标签
  • 【Git版本控制 02】分支管理
  • re:从0开始的CSS学习之路 5. 颜色单位
  • 第五篇【传奇开心果系列】vant开发移动应用示例:深度解读高度可定制
  • MySQL-事务(TRANSACTION)
  • [技术杂谈]如何下载vscode历史版本