Django之ORM使用以及模板语言
一、ORM版增删改查
1、ORM的语句
1、类名.objects.all() --> 返回一个列表
2、类名.objects.filter() --> 返回一个列表
3、类名.objects.get() --> 返回一个对象
4、类名.objects.create(name='') --> 创建一个对象,返回的就是刚创建的对象
5、类名.objects.filter(id='').delete() --> 删除
6、obj = 类名.objects.get(id='')
obj.name = '新值' --> 修改对象的属性
obj.save() --> 把修改后的值同步到数据库
2、Django模板语言
1、for循环
{% for i in ret %}
{{ i }}
{{ forloop.counter }} --> for 循环从1开始计数
{{ forloop.counter0 }} --> for 循环从0开始计数
{% endfor %}



from django.shortcuts import render,redirect
from app01.models import Press # Create your views here. # 出版社列表函数
def press_list(request):
# 获取出版社数据库中的所有数据
ret = Press.objects.all()
# 用html展示出版社列表
return render(request,'press_list.html',{'ret':ret}) # 添加出版社函数
def add_press(request):
# 判断是不是POST请求方法(form表单中)
if request.method == 'POST':
# 获取要添加的名字
new_name = request.POST.get('name')
# 在数据库中创建新的出版社
Press.objects.create(name=new_name)
# 跳转到出版社列表页面
return redirect('/press_list/')
# 跳转到添加页面
return render(request,'add_press.html') # 删除出版社函数
def delete_press(request):
# 获取要删除出版社的ID
delete_id = request.GET.get('id')
# 根据获取的ID来删除数据库中对应的出版社
Press.objects.get(id=delete_id).delete()
# 跳转到出版社列表
return redirect('/press_list/') # 编辑出版社函数
def edit_press(request):
# 获取要编辑的ID
edit_id = request.GET.get('id')
# 通过ID来获取对象
press_obj = Press.objects.get(id=edit_id)
# 判断是不是POST请求(form表单中)
if request.method == 'POST':
# 获取修改以后的name
edit_name = request.POST.get('name')
# 重新给name赋值
press_obj.name = edit_name
# 把修改以后的name更新到数据库
press_obj.save()
# 跳转到出版社列表
return redirect('/press_list/')
# 跳转到编辑页面
return render(request,'edit_press.html',{'press_obj': press_obj}) views.py中所写的内容
views.py中的内容

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>出版社页面</title>
<link rel="stylesheet" href="/static/bootstrap-3.3.7/css/bootstrap.css">
<link rel="stylesheet" href="/static/font-awesome-4.7.0/css/font-awesome.css">
<link rel="stylesheet" href="/static/bootstrap-sweetalert-master/dist/sweetalert.css">
<script src="/static/bootstrap-sweetalert-master/dist/sweetalert.js"></script>
<script src="/static/jquery-3.3.1.min.js"></script>
<script src="/static/bootstrap-3.3.7/js/bootstrap.js"></script>
<style>
table { border-spacing: 2px;
border-collapse: unset;
}
body{
font-size: 16px;
}
</style>
</head>
<body>
<table border="">
<thead>
<tr>
<th>序号</th>
<th>id</th>
<th>name</th>
<th>操作</th>
</tr>
</thead>
<tbody>
{% for foo in ret %}
<tr>
<td>{{ forloop.counter }}</td>
<td>{{ foo.id }}</td>
<td>{{ foo.name }}</td>
<td>
<a href="/edit_press/?id={{ foo.id }}">编辑</a>
<a href="/delete_press/?id={{ foo.id }}">删除</a>
</td>
</tr>
{% endfor %}
</tbody>
</table>
<button class="btn-success btn"><a href="/add_press/" style="text-decoration: none;color: blue;">添加出版社</a></button>
</body>
</html>
press_list.html文件


Django之ORM使用以及模板语言的更多相关文章
- python第一百零五天 ---Django 基础 路由系统 URL 模板语言 ORM 操作
一 路由系统 URL 1 url(r'^index/',views.index) url(r'^home/', views.Home.as_view()) 2 url(r'^detail-(\d+). ...
- Day18 Django之路由系统、模板语言、Ajax、Model
一.路由系统 1.创建Django项目 django-admin startproject day18 cd day18 python3 manage.py startapp app01 2.app0 ...
- Django模板语言初识
一.Django框架简介 1.MVC框架 MVC,全名是Model View Controller,是软件工程中的一种软件架构模式,把软件系统分为三个基本部分:模型(Model).视图(View)和控 ...
- Django 模板语言 路由 视图
. 模板语言(字符串替换) . 母版和继承 . 什么时候用母版? html页面有重复的代码,把它们提取出来放到一个单独的html文件. (比如:导航条和左侧菜单) . 子页面如何使用母版? {% ex ...
- Django模板语言详解
本节将介绍Django模版系统的语法.Django模版语言致力于在性能和简单性上取得平衡. 如果你有过其它编程背景,或者使用过一些在HTML中直接混入程序代码的语言,那么你需要记住,Django的模版 ...
- Django模板语言与视图(view)
常用语法 {{ }}和{% %} 变量相关的用{{}} , 逻辑相关的用{% %} 变量 在Django的模板语言中按此语法使用:{{ 变量名 }}. 当模版引擎遇到一个变量,它将计算这个变量,然后 ...
- Django---MTV和MVC的了解,Django的模版语言变量和逻辑,常见的模板语言过滤器,自定义过滤器,CSRF了解,Django的母版(继承extends,块block,组件include,静态文件的加载load static),自定义simple_tag和inclusion_tag
Django---MTV和MVC的了解,Django的模版语言变量和逻辑,常见的模板语言过滤器,自定义过滤器,CSRF了解,Django的母版(继承extends,块block,组件include,静 ...
- [Python自学] day-18 (2) (MTV架构、Django框架、模板语言)
一.实现一个简单的Web服务器 使用Python标准库提供的独立WSGI服务器来实现MVC架构. 首先,实现一个简单的Web服务器: from wsgiref.simple_server import ...
- 第三章:模版层 - 1:Django模板语言详解
本节将介绍Django模版系统的语法.Django模版语言致力于在性能和简单性上取得平衡. 如果你有过其它编程背景,或者使用过一些在HTML中直接混入程序代码的语言,那么你需要记住,Django的模版 ...
随机推荐
- POJ 1182 食物链(并查集的使用)
食物链 Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 81915 Accepted: 24462 Description ...
- shell 11函数
函数定义 function 方法名(){ command return int; } 注意:function可加可不加 #shell #!/bin/sh function fun1(){ echo & ...
- [转载] ./configure,make,make install的作用
1.configure,这一步一般用来生成 Makefile,为下一步的编译做准备,你可以通过在 configure 后加上参数来对安装进行控制,比如代码:./configure –prefix=/u ...
- Eclipse修改workspace目录的几种方式
Eclipse是一款很强的Java IDE,我们在开始的时候,往往设定了默认的workspace,当用久在之后,我们可能要去更改一下workspace的位置.下面有几种方法可以更改workspace的 ...
- 2015ACM-ICPC长春E题(hdu5531)题解
一.题意 No response.T_T 二.思路 分$n$为奇数或者偶数讨论. 如果$n$是奇数,列出不等式组:$r_1+r_2=d_{1},r_2+r_3=d_{2},r_3+r_4=d_{3}, ...
- CentOS 配置软raid
v-box里面新建一个centos7.3的服务器 v-box中增加4块8GB容量的硬盘.(我增加的是nvme的ssd硬盘,普通硬盘也没有问题,容量大代表你需要等待的时间长,所以小点容量最好) 创建ra ...
- solr入门之搜索建议的几种实现方式和最终选取实现思路
上篇博客中我简单的讲了下solr自身的suggest模块来实现搜索建议.但是今天研究了下在solr自身的suggest中添加进去拼音来智能推荐时不时很方便.在次从网上搜集和整理思考了下该问题的解决. ...
- QEMU,KVM及QEMU-KVM介绍
What's QEMU QEMU是一个主机上的VMM(virtual machine monitor),通过动态二进制转换来模拟CPU,并提供一系列的硬件模型,使guest os认为自己和硬件直接打交 ...
- springBoot----@ConditionalOnxxx相关注解总结
下面来介绍如何使用@Condition public class TestCondition implements Condition { /** * 只有返回true,才会启用配置 */ pub ...
- linux主机555、644、666、755、777权限详解
linux主机555.644.666.755.777权限详解 发表时间:2014-06-03 05:07 来源:未知 分类:其它代码 作者:岑溪网站开发 点击:次 linux主机555.644.666 ...