潭州课堂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
视图:
潭州课堂25班:Ph201805201 django框架 第九课 模型补充 博客小案例 (课堂笔记)的更多相关文章
- Django 09 博客小案例
Django 09 博客小案例 urls.py from django.urls import path from . import views urlpatterns = [ path('index ...
- Django——9 博客小案例的实现
Django 博客小案例的实现 主要实现博客的增删改查功能 主页index.html --> 展示添加博客和博客列表的文字,实现页面跳转 添加页add.html --> 输入文章标 ...
- 个人博客小案例(纯Django搭建)
在看这篇文章的时候,必须有django基础,如果没有点击访问 一.环境配置 新建项目并做配置项目创建,创建APP并注册 创建模板并配置相应的路径,点击下载模板,配置方法点击访问 创建静态文件并配置,点 ...
- 潭州课堂25班:Ph201805201 django框架 第二课 url,,include,kwargs,name的使用 (课堂笔记)
url 路由配置 这里的 name 由用户输入,得到参数 /<>/是获取用户输入值 这里的 name 默认接收的是 str 如果要接收 int 时: 当输入参数非数字时提示错误 最常用是 ...
- 潭州课堂25班:Ph201805201 django框架 第一课 环境搭建 (课堂笔记)
在虚拟机中创建虚拟环 mkvirtualenv -p /usr/bin/python3 djtest mkvirtualenv 是创建命令, -p /usr/bin/python3 是指定在 pyt ...
- 潭州课堂25班:Ph201805201 django 项目 第九课 图片验证码前台实现,判断用户是否注册功能实现 (课堂笔记)
u胎代码实现 : 针对每一个 app 写个 js 脚本, 先给 users 的 app 应用创建个 js:在指定目录下的 js 文件夹下,创建 users 文件夹,下创建 suth.js ,图片验证 ...
- 使用Phalcon框架开发一个简易的博客系统
使用Phalcon PHP框架开发一个简易的博客系统(类似于CMS) 最近在做Phalcon(Phalcon在英文中指的是鸟类中飞得最快的那一个物种,由于是高性能框架,借用了这个词)相关的项目,由于刚 ...
- 2017-2018-1 20155305 《信息安全系统设计基础》第四周学习总结(课堂提交作业未来得及提交码云链接myod补充博客)
2017-2018-1 20155305 <信息安全系统设计基础>第四周学习总结(课堂提交作业未来得及提交码云链接myod补充博客) 课堂提交题目要求 编写MyOD.java 用java ...
- Hexo博客框架10分钟搭建个人博客
首先是先给大家打个招呼 最近看网上看到了很多的的关于搭建博客的视频,我自己也学着自己搭建了一个博客"我自己的博客链接"(欢迎大家来我的博客跟我深入交♂流),今天我把搭建的过程记录下 ...
随机推荐
- (转)一位资深程序员大牛给予Java初学者的学习路线建议
Java学习这一部分其实也算是今天的重点,这一部分用来回答很多群里的朋友所问过的问题,那就是你是如何学习Java的,能不能给点建议?今天我是打算来点干货,因此咱们就不说一些学习方法和技巧了,直接来谈每 ...
- IDEA中tomcat的部署
创建一个项目就要部署tomcat
- python---通过递归和动态规划策略解决找零钱问题
也是常见套路. # coding = utf-8 def rec_mc(coin_value_list, change, know_results): min_coins = change if ch ...
- WARN conf.FlumeConfiguration: Could not configure sink sink1 due to: No channel configured for sink: sink1 org.apache.flume.conf.ConfigurationException: No channel configured for sink: sink1
1.错误如下所示,启动flume采集文件到hdfs案例的时候,出现如下所示的错误: 大概是说No channel configured for sink,所以应该是sink哪里配置出现了错误,百度了一 ...
- some advice in work
给研究生的建议 文档抄袭自:北航大佬 Fei-Fei Li:De-Mystifying Good Research and Good Papers (repost) 如何提升你的能力?给年轻程序员的几 ...
- Java线程池参数
关于Java线程池的参数设置.线程池是Java多线程里开发里的重要内容,使用难度不大,但如何用好就要明白参数的含义和如何去设置.干货里的内容大多是参考别人的,加入了一些知识点的扩充和看法.希望能对多线 ...
- python全栈开发day99-DRF序列化组件
1.解释器组件源码分析 https://www.processon.com/view/link/5ba0a8e7e4b0534c9be0c968 2.基于CBV的接口设计 1).django循环que ...
- ELK使用3-Logstash
一.命令行输入输出操作 1.命令行输出: /application/elk/logstash/bin/logstash -e 'input { stdin{} } output { stdout{} ...
- UOJ#310 【UNR #2】黎明前的巧克力 FWT 多项式
原文链接https://www.cnblogs.com/zhouzhendong/p/UOJ310.html 题目传送门 - UOJ#310 题意 给定 $n$ 个数 ,请你选出两个不相交的集合(两个 ...
- Codeforces 980D Perfect Groups 计数
原文链接https://www.cnblogs.com/zhouzhendong/p/9074164.html 题目传送门 - Codeforces 980D 题意 $\rm Codeforces$ ...