聚合查询:

分组查询: annotate() 方法

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

以字典的形式输出

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

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

先拿到所有课程信息表,

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

F 查询:

Q 查询:

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

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

在配置文件中注册 APP

分配 URL

更新下

建表

生成执行文件

提交到数据库

编辑函数

  1. from django.shortcuts import render,redirect,reverse
  2. from django.http import HttpResponse
  3. from .models import *
  4.  
  5. # Create your views here.
  6.  
  7. # 主页面
  8. def index(request):
  9. return render(request,'blog/index.html')
  10.  
  11. # 添加页面
  12. def add (request):
  13. # 第一次进来是 GET 请求,点提交时是 PST 请求
  14. if request.method == 'GET':
  15. return render(request,'blog/add.html')
  16. elif request.method == 'POST':
  17. # 从前台传来的数据
  18. title = request.POST.get('title')
  19. content = request.POST.get('content')
  20. # 保存到数据库
  21. blog = Blog(title=title,content=content)
  22. blog.save()
  23. # 重定向
  24. return redirect(reverse('add'))
  25.  
  26. # 文章列表
  27. def list(request):
  28. # 查数据
  29. blog_list = Blog.objects.all()
  30. # 传到前台
  31. return render(request,'blog/list.html',context={'blog_list':blog_list})
  32.  
  33. # 文章详情页面
  34. def detail(request,blog_id):
  35. blog = Blog.objects.get(id=blog_id)
  36. return render(request,'blog/detail.html',context={'blog':blog})
  37.  
  38. # 编辑数据
  39. def edit(request,blog_id):
  40. blog = Blog.objects.get(id=blog_id)
  41. if blog:
  42. if request.method == 'GET':
  43. # 将数据传到框框内
  44. return render(request,'blog/add.html',context={'title':blog.title,
  45. 'content':blog.content})
  46. else:
  47. # 将传回的新数据保存到数据库
  48. title = request.POST.get('title')
  49. content = request.POST.get('content')
  50. blog.title = title
  51. blog.content = content
  52. blog.save()
  53. return redirect(reverse('add'))
  54. else:return HttpResponse('没有这篇博客')
  55.  
  56. # 删除数据
  57. def delete(request,blog_id):
  58. blog = Blog.objects.get(id=blog_id)
  59. if blog:
  60. blog.delete()
  61. return redirect(reverse('list'))
  62. else:return HttpResponse('没有这篇博客')

  

视图函数:

html :

视图:

html

视图:

html

 

视图:

潭州课堂25班:Ph201805201 django框架 第九课 模型补充 博客小案例 (课堂笔记)的更多相关文章

  1. Django 09 博客小案例

    Django 09 博客小案例 urls.py from django.urls import path from . import views urlpatterns = [ path('index ...

  2. Django——9 博客小案例的实现

    Django  博客小案例的实现 主要实现博客的增删改查功能 主页index.html  -->  展示添加博客和博客列表的文字,实现页面跳转 添加页add.html  --> 输入文章标 ...

  3. 个人博客小案例(纯Django搭建)

    在看这篇文章的时候,必须有django基础,如果没有点击访问 一.环境配置 新建项目并做配置项目创建,创建APP并注册 创建模板并配置相应的路径,点击下载模板,配置方法点击访问 创建静态文件并配置,点 ...

  4. 潭州课堂25班:Ph201805201 django框架 第二课 url,,include,kwargs,name的使用 (课堂笔记)

    url 路由配置 这里的 name 由用户输入,得到参数 /<>/是获取用户输入值 这里的 name 默认接收的是 str 如果要接收 int 时: 当输入参数非数字时提示错误 最常用是 ...

  5. 潭州课堂25班:Ph201805201 django框架 第一课 环境搭建 (课堂笔记)

    在虚拟机中创建虚拟环 mkvirtualenv -p /usr/bin/python3 djtest mkvirtualenv 是创建命令, -p /usr/bin/python3  是指定在 pyt ...

  6. 潭州课堂25班:Ph201805201 django 项目 第九课 图片验证码前台实现,判断用户是否注册功能实现 (课堂笔记)

    u胎代码实现 : 针对每一个 app 写个 js 脚本, 先给 users 的 app 应用创建个 js:在指定目录下的 js 文件夹下,创建 users 文件夹,下创建 suth.js ,图片验证 ...

  7. 使用Phalcon框架开发一个简易的博客系统

    使用Phalcon PHP框架开发一个简易的博客系统(类似于CMS) 最近在做Phalcon(Phalcon在英文中指的是鸟类中飞得最快的那一个物种,由于是高性能框架,借用了这个词)相关的项目,由于刚 ...

  8. 2017-2018-1 20155305 《信息安全系统设计基础》第四周学习总结(课堂提交作业未来得及提交码云链接myod补充博客)

    2017-2018-1 20155305 <信息安全系统设计基础>第四周学习总结(课堂提交作业未来得及提交码云链接myod补充博客) 课堂提交题目要求 编写MyOD.java 用java ...

  9. Hexo博客框架10分钟搭建个人博客

    首先是先给大家打个招呼 最近看网上看到了很多的的关于搭建博客的视频,我自己也学着自己搭建了一个博客"我自己的博客链接"(欢迎大家来我的博客跟我深入交♂流),今天我把搭建的过程记录下 ...

随机推荐

  1. jQuery常见的几个文档处理方式

    <!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8" ...

  2. java 基础知识点必备

    1.为什么集合类没有实现Cloneable和Serializable接口? 克隆(cloning)或者是序列化(serialization)的语义和含义是跟具体的实现相关的.因此,应该由集合类的具体实 ...

  3. ES优化总结

    ES优化总结(特别是在bulk大量数据到ES的时候) https://blog.csdn.net/chenxun_2010/article/details/78602795 将 ELASTICSEAR ...

  4. openresty用naxsi防xss、SQL注入

    下载naxsi wget https://github.com/nbs-system/naxsi/archive/untagged-afabfc163946baa8036f.tar.gz tar zx ...

  5. Java实现Redis消息队列

    这里我使用Redis的发布.订阅功能实现简单的消息队列,基本的命令有publish.subscribe等. 在Jedis中,有对应的java方法,但是只能发布字符串消息.为了传输对象,需要将对象进行序 ...

  6. 通过awk获取netstat命令中的进程号

    需要如下: 获取进程号

  7. 浅谈Rsync+Inotify实时同步

    Rsync是Unix/Linux旗下的一款应用软件,利用它可以是多台服务器数据保持同步一致性,第一次同步时rsync会复制全部内容,但在下次只传输修改过的文件 Rsync在传输数据的过程中可以实行压缩 ...

  8. Codeforces 425E Sereja and Sets dp

    Sereja and Sets 我们先考虑对于一堆线段我们怎么求最大的不相交的线段数量. 我们先按 r 排序, 然后能选就选. 所以我们能想到我们用$dp[ i ][ j ]$表示已经选了 i 个线段 ...

  9. python--闭包、装饰器

    1.闭包 ①.python中一切皆对象,函数中嵌套函数肯定也是合理的,这种函数也叫作内嵌函数(内部函数) ②.内嵌函数只能被外部函数调用,被外部函数以外的区域被调用,就会出错!!! ③.若内部函数中引 ...

  10. PHP算法排序之快速排序、冒泡排序、选择排序、插入排序性能对比

    <?php //冒泡排序 //原理:从倒数第一个数开始,相邻的两个数比较,后面比前面的小,则交换位置,一直到比较第一个数之后则最小的会排在第一位,以此类推 function bubble_sor ...