zoukankan      html  css  js  c++  java
  • Django导航表、文章列表

    导航表

    导航应该从数据库里查,找到context_process.py文件,在上下文管理器 nav_title_process,中,我们把navs列表中的导航换成从数据库中查询

    from user import models #需要查数据库
    from user import const
    def nav_title_process(request):
        '''上下文管理器,这个函数里面返回的每个变量,在每个页面里面都可以用'''
        navs = models.Nav.objects.filter(is_delete=1) #查询所有的数据,非删除的,查出来是query_set对象,相当于一个列表
        title = '我的个人博客'
        content = {'daohang':navs,'title':title,'page_limit':const.page_limit}
        return content
    
    # 把写好的上下文管理器,加到setting的TEMPLATES中去,里面都是自带的上下文管理器

    导航我们是写在base.html中的,在里面做相应的修改

    <header class="header-navigation" id="header">
      <nav><div class="logo"><a href="/">{{ title }}</a></div>
        <h2 id="mnavh"><span class="navicon"></span></h2>
        <ul id="starlist">
            {% for nav in daohang %}
    
    {#修改导航栏,从数据库中取#}
    {#导航的名称是name,所以是{{ nav.name }},超链接href跳转的位置是nav的id,所以{{ nav.id }}#}
                <li><a href="/nav/{{ nav.id }}">{{ nav.name }}</a></li>
    
            {% endfor %}
    
        </ul>
    </nav>
    </header>

    文章表

    一个导航里会有多个文章,我们在models.py中新定义一张Article表

    # 数据库中新建文章表
    class Article(models.Model):
        title = models.CharField(max_length=20,verbose_name='文章名称')
        content = models.TextField(null=True,verbose_name='文章内容') # 因为文章内容很长,所以用TextField来寸,不用执行长度
        # 图片,需要保存路径,在static下新建了文件夹article_img,所以upload_to='article_img';
        img = models.ImageField(upload_to='article_img',null=True,verbose_name='文章图片',default='article_img/1.jpg')
        is_delete = models.SmallIntegerField(default=1, verbose_name='是否被删除')
        # 一对多的关系用ForeignKey外键,和Nav表关联,文章表和导航表要关联;on_delete=models.DO_NOTHING当导航被删,文章不会被删;db_constraint=False不会真的建立外键关系,用外键一定要加上这个参数
        nav = models.ForeignKey(Nav,verbose_name='导航id',on_delete=models.DO_NOTHING,db_constraint=False)
        create_time = models.DateTimeField(verbose_name='创建时间', auto_now_add=True)  # auto_now_add的意思,插入数据的时候,自动取当前时间
        update_time = models.DateTimeField(verbose_name='修改时间', auto_now=True)  # 修改数据的时候,时间会自动变
    
        def __str__(self):
            return self.title
    
        class Meta:
            db_table ='article'
            verbose_name = '文章表'
            verbose_name_plural = verbose_name

    上传图片,需要在setting加上路径

    MEDIA_ROOT = os.path.join(BASE_DIR, 'static') #上传文件的路径
  • 相关阅读:
    OpenGL红宝书:第一个渲染程序Triangles常见问题归总
    OpenGL绘制简单的参数曲线(完)——三次B样条曲线
    OpenGL绘制简单的参数曲线(二)——三次Bezier曲线
    OpenGL绘制简单的参数曲线(一)——三次Hermite曲线
    xcode:读取txt文件
    mac opengl 画一个三角形
    glVertexAttribPointer
    glEnableVertexAttribArray 使用
    macOS下基于GLFW+GLAD的OpenGL环境配置
    php 执行 shell 命令转义字符
  • 原文地址:https://www.cnblogs.com/haifeima/p/11908768.html
Copyright © 2011-2022 走看看