• 潭州课堂25班:Ph201805201 django框架 第九课 模型补充 博客小案例 (课堂笔记)


    聚合查询:

     

    分组查询: annotate() 方法

    例:查询某学院学生人数,(一对多查询)

    以字典的形式输出

     annotate(统计 ‘关联学生字段 出现的次,).字典形式(键,值)

    例:查询每项课程有多少学生 (多对多查询)

    先拿到所有课程信息表,

    annotate(统计 ‘dept’ 出现的次,).字典形式(键,值)

     F 查询:

    Q 查询:

    连接到阿里云服务器,上传项目,在该项目中创建新的 APP,

    创建好后在本地更新下载下,

    在配置文件中注册 APP

    分配 URL

    更新下

    建表

     

    生成执行文件

    提交到数据库

     编辑函数

    from django.shortcuts import render,redirect,reverse
    from django.http import HttpResponse
    from .models import *
    
    # Create your views here.
    
    # 主页面
    def index(request):
        return render(request,'blog/index.html')
    
    # 添加页面
    def add (request):
        # 第一次进来是 GET 请求,点提交时是 PST 请求
        if request.method == 'GET':
            return render(request,'blog/add.html')
        elif request.method == 'POST':
            #  从前台传来的数据
            title = request.POST.get('title')
            content = request.POST.get('content')
            # 保存到数据库
            blog = Blog(title=title,content=content)
            blog.save()
            # 重定向
            return redirect(reverse('add'))
    
    # 文章列表
    def list(request):
        #  查数据
        blog_list = Blog.objects.all()
        #                                       传到前台
        return render(request,'blog/list.html',context={'blog_list':blog_list})
    
    # 文章详情页面
    def detail(request,blog_id):
        blog = Blog.objects.get(id=blog_id)
        return render(request,'blog/detail.html',context={'blog':blog})
    
    # 编辑数据
    def edit(request,blog_id):
        blog = Blog.objects.get(id=blog_id)
        if blog:
            if request.method == 'GET':
                # 将数据传到框框内
                return render(request,'blog/add.html',context={'title':blog.title,
                                                           'content':blog.content})
            else:
                # 将传回的新数据保存到数据库
                title = request.POST.get('title')
                content = request.POST.get('content')
                blog.title = title
                blog.content = content
                blog.save()
                return redirect(reverse('add'))
        else:return HttpResponse('没有这篇博客')
    
    # 删除数据
    def delete(request,blog_id):
        blog = Blog.objects.get(id=blog_id)
        if blog:
            blog.delete()
            return redirect(reverse('list'))
        else:return HttpResponse('没有这篇博客')
    

      

    视图函数:

     html :

    视图:

     

     html

     视图:

     

     html

     

    视图:

  • 相关阅读:
    Hbase学习记录(2)| Shell操作
    Hbase学习记录(1)|伪分布式安装
    Zookeeper集群安装详解
    防范xss的正确姿势
    怎么样通过编写Python小程序来统计测试脚本的关键字
    XSS报警机制(前端防火墙:第二篇)
    XSS姿势——文件上传XSS
    MySQL防范SQL注入风险
    SQL注入—我是如何一步步攻破一家互联网公司的
    通过BurpSuite和sqlmap配合对dvwa进行sql注入测试和用户名密码暴力破解
  • 原文地址:https://www.cnblogs.com/gdwz922/p/9950282.html
Copyright © 2020-2023  润新知