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的模版 ...
随机推荐
- AspectJ入门
AOP的实现方式有两种: AOP框架在编译阶段,就对目标类进行修改,得到的class文件已经是被修改过的.生成静态的AOP代理类(生成*.class文件已经被改掉了,需要使用特定的编译器).以Aspe ...
- 阿里云启用IPV6
ping过别人的IPv6网址之后,可以确定,局域网是不支持IPv6的.所以要使用隧道技术建立两台机器之间的IPv6连接 1.发现测试用服务器上没有IPv6地址.所以测试服务器的内核应该是没有IPv6模 ...
- [UE4]场景光照改进PostProcessVolume
PostProcessVolume可以做的效果很多,其中就可以实现太阳光斑效果. Unbound勾上上,就表示不受“PostProcessVolume”组件的大小限制,直接应用到整个世界.如果不勾选, ...
- pandas的set_index和reset_index方法
import pandas as pd data = pd.DataFrame(np.arange(1,10).reshape(3,3),index=["a","b&qu ...
- python的return self的用法
转载:https://blog.csdn.net/jclian91/article/details/81238782 class foo: def __init__(self): self.m = 0 ...
- USB接口程序编写
copy from http://blog.csdn.net/luckywang1103/article/details/12393889# HID是Human Interface Devices的缩 ...
- 自定义ExtJS插件
http://cache.baiducontent.com/c?m=9f65cb4a8c8507ed4fece763105392230e54f73b6f93834c28c3933fc239045647 ...
- python的eval、exec函数使用总结
eval函数 一.函数的作用 将字符串str当成有效的表达式来求值并返回计算结果.它要执行的python代码只能是单个运算表达式(不支持任意形式的赋值操作),而不能是复杂的代码逻辑. 二.函数的定义 ...
- tomcat原理分析与简单实现
tomcat原理分析与简单实现 https://blog.csdn.net/u014795347/article/details/52328221 2016年08月26日 14:48:18 卫卫羊习习 ...
- MNIST数据集入门
简单的训练MNIST数据集 (0-9的数字图片) 详细地址(包括下载地址):http://www.tensorfly.cn/tfdoc/tutorials/mnist_beginners.html # ...