为了账号安全,请及时绑定邮箱和手机立即绑定
  • 通过排序来选择最新的五篇文章

    top5_article_list = Article.objects.order_by('-article_id')[:5]
    paginator = Paginator(all_article, 3)
    page_num = paginator.num_pages
    page_article_list = paginator.page(page)
    if page_article_list.has_next():
        next_page = page + 1
    else:
        next_page = page
    if page_article_list.has_previous():
        previous_page = page - 1
    else:
        previous_page = page
    return render(request, 'blog/index.html', {
        'article_list': page_article_list,
        'page_num': range(1, int(page_num) + 1),
        'curr_page': page,
        'previous_page': previous_page,
        'next_page': next_page,
        'top5_article_list': top5_article_list
    })


    查看全部
  • 实现分页按钮

    设计?page= 的url

    def get_index_page(request):
        page = request.GET.get('page')
        if page:
            page = int(page)
        else:
            page = 1
        all_article = Article.objects.all()
        paginator = Paginator(all_article, 3)
        page_num = paginator.num_pages
        page_article_list = paginator.page(page)
        if page_article_list.has_next():
            next_page = page + 1
        else:
            next_page = page
        if page_article_list.has_previous():
            previous_page = page - 1
        else:
            previous_page = page
        return render(request, 'blog/index.html', {
            'article_list': page_article_list,
            'page_num': range(1, int(page_num) + 1),
            'curr_page': page,
            'previous_page': previous_page,
            'next_page': next_page
        })


    查看全部
    0 采集 收起 来源:实现分页功能

    2020-06-29

  • 在文章详情页增加前后篇文章的跳转按钮

    html改造

    def get_detail_page(request, article_id):
        curr_article = None
        previous_article = None
        next_article = None
        previous_index = 0
        next_index = 0
        all_article = Article.objects.all()
        for index, article in enumerate(all_article):
            if index == 0:
                previous_index = 0
                next_index = index + 1
            elif index == len(all_article) - 1:
                previous_index = index - 1
                next_index = index
            else:
                previous_index = index - 1
                next_index = index + 1
            if article.article_id == article_id:
                curr_article = article
                previous_article = all_article[previous_index]
                next_article = all_article[next_index]
                break
        return render(request, 'blog/detail.html', {
            'curr_article': curr_article,
            'previous_article': previous_article,
            'next_article': next_article
        })


    查看全部
  • 使用url来对指定文章的详情页进行访问

    html加入a标签

    是点击可以跳转链接

    查看全部
  • 使用模板系统实时的进行渲染

    将数据通过

    return render(request, 'blog/detail.html', {
        'curr_article': curr_article
    })

    返回给页面进行显示

    查看全部
  • django的模板系统

    网页逻辑和网页视图应该分开设计

    {{变量}}

     {%for x in list %},{% endfor %}

     {% if %},{% else %}, {% endif %}



    查看全部
  • 使用bootstrap实现静态博客页面

    简单易上手

    栅格系统

    将页面分为12份


    查看全部
  • 使用django的模板来渲染页面

    进一步完成博客界面


    查看全部
    0 采集 收起 来源:章节导学

    2020-06-28

  • def article_content(request):
        article = Article.objects.all()[0]
        title = article.title
        brief_content = article.brief_content
        content = article.content
        article_id = article.article_id
        publish_date = article.publish_date
        return_str = 'title:%s,brief_content:%s,content:%s,article_id:%s,publish_date:%s' % (title, brief_content, content,
                                                                                             article_id, publish_date)
        return HttpResponse(return_str)

    返回博客内容

    查看全部
  • django admin是自带的后台管理工具

    自己在admin中注册模板

    from .models import Article
    
    admin.site.register(Article)

    让后台管理显示标题分辨不同文章

    def __str__(self):
        return self.title


    查看全部
  • django shell

    可以用于小范围的debug

    python manage.py shell

    from blog.models import Article

    a=Article()

    a.title='Test shell'

    a.brief_content='hello shell'

    a.content='hello world hello django hello shell'

    a.save()

    print(Article.objects.all()[0].title)


    查看全部
    0 采集 收起 来源:初识 Django Shell

    2020-06-28

  • 博客包括

    标题

    摘要

    内容

    IntegerField

    TextField

    DateTimeField

    AutoField自增

    primary_key主键

    创建模型

    class Article(models.Model):
        article_id=models.AutoField(primary_key=True)
        title=models.TextField()
        brief_content=models.TextField()
        content=models.TextField()
        publish_date=models.DateTimeField(auto_now=True)

    命令生成迁移文件

    python manage.py makemigrations

    命令导入文件

    python manage.py migrate

    查看全部
  • 视图层与数据库中间是模型层

    python与数据库表之间转换

    屏蔽数据库之间的差异

    专注于业务逻辑的开发

    查看全部
    0 采集 收起 来源:模型层简介

    2020-06-28

  • 模型层的定义

    如何创建一个文章的模型层

    了解django shell

    django admin模块了解


    查看全部
    0 采集 收起 来源:章节导学

    2020-06-28

  • from django.http import HttpResponse
    # Create your views here.
    def hello_world(request):
        return HttpResponse('hello world')
    urlpatterns=[
        path('hello_world',blog.views.hello_world)
    ]

    完成项目路由,和应用路由对视图函数的绑定

    查看全部
    0 采集 收起 来源:Django HelloWorld

    2020-06-28

举报

0/150
提交
取消
课程须知
有简单的Python语言基础
老师告诉你能学到什么?
1. Django的项目结构 2. Django的应用开发 3. Django的路由配置 4. Django的视图层 5. Django的模型层 6. Django的模板系统 7. Django的Admin模块 8. Django的Shell

微信扫码,参与3人拼团

微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号

友情提示:

您好,此课程属于迁移课程,您已购买该课程,无需重复购买,感谢您对慕课网的支持!