Python - Django - ORM 操作数据
查询数据(查询管理员):
app01/models.py 中定义的类,也就是创建的表
from django.db import models # 类必须继承 models.Model
class Admin(models.Model):
# 创建一个主键自增的字段
id = models.AutoField(primary_key=True) # AutoField 为自增的字段
# 创建一个 varchar 类型的不能为空的字段
# varchar 类型需要指定最大长度
username = models.CharField(null=False, max_length=20)
password = models.CharField(null=False, max_length=20)
admin 表中的数据
在 app01/views.py 中写上获取数据的函数
from django.shortcuts import render
from app01 import models def admin_list(request):
admins = models.Admin.objects.all() # 获取所有数据
print(admins[0].id, admins[0].username, admins[0].password)
return render(request, "admin_list.html", {"admin_list": admins})
然后在 mysite/urls.py 中写上对应关系
# -*- coding:utf-8 -*-
__author__ = "MuT6 Sch01aR" from django.conf.urls import url
from django.shortcuts import HttpResponse, render, redirect
from app01 import views # 从 app01 中导入函数 # 保存路径和函数的对应关系
urlpatterns = [
url(r'^admin_list/', views.admin_list)
]
admin_list.html:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>管理员列表</title>
</head>
<body> <table border="1">
<thead>
<tr>
<th>id</th>
<th>用户名</th>
<th>密码</th>
</tr>
</thead>
<tbody> {% for user in admin_list %}
<tr>
<td>{{ user.id }}</td>
<td>{{ user.username }}</td>
<td>{{ user.password }}</td>
</tr>
{% endfor %} </tbody>
</table>
</body>
</html>
这里用到了 for 循环来读取数据
{% for user in admin_list %}
<tr>
<td>{{ user.id }}</td>
<td>{{ user.username }}</td>
<td>{{ user.password }}</td>
</tr>
{% endfor %}
运行结果
添加数据(添加管理员):
在 admin_list.html 中增加一个添加管理员的选项
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>管理员列表</title>
</head>
<body> <table border="1">
<thead>
<tr>
<th>id</th>
<th>用户名</th>
<th>密码</th>
</tr>
</thead>
<tbody> {% for user in admin_list %}
<tr>
<td>{{ user.id }}</td>
<td>{{ user.username }}</td>
<td>{{ user.password }}</td>
</tr>
{% endfor %} </tbody>
</table> <a href="/add_admin/">添加管理员</a> </body>
</html>
点击后会跳转到 /add_admin/ 进行相关的操作
add_admin.html:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>添加管理员</title>
</head>
<body> <form action="/add_admin/" method="post">
<p>用户名:
<input type="text" name="username">
</p> <p>密码:
<input type="text" name="password">
</p> <p>
<input type="submit" value="提交">
</p>
</form> </body>
</html>
app01/views.py 下的代码
from django.shortcuts import render, redirect
from app01 import models def admin_list(request):
admins = models.Admin.objects.all() # 获取所有数据
print(admins[0].id, admins[0].username, admins[0].password)
return render(request, "admin_list.html", {"admin_list": admins}) def add_admin(request):
if request.method == "POST":
user = request.POST.get("username", None)
pwd = request.POST.get("password", None)
# 去数据库中新增一条数据
models.Admin.objects.create(username=user, password=pwd)
# 添加成功后跳转
return redirect("/admin_list/") return render(request, "add_admin.html")
在 mysite/urls.py 中添加对应关系
# -*- coding:utf-8 -*-
__author__ = "MuT6 Sch01aR" from django.conf.urls import url
from django.contrib import admin
from django.shortcuts import HttpResponse, render, redirect
from app01 import views # 保存路径和函数的对应关系
urlpatterns = [
url(r'^admin_list/', views.admin_list),
url(r'^add_admin/', views.add_admin)
]
运行结果:
点击“添加管理员”
输入用户名和密码,点击“提交”
管理员添加成功
Python - Django - ORM 操作数据的更多相关文章
- Python - Django - ORM 多对多表结构的三种方式
多对多的三种方式: ORM 自动创建第三张表 自己创建第三张表, 利用外键分别关联作者和书,关联查询比较麻烦,因为没办法使用 ORM 提供的便利方法 自己创建第三张表,使用 ORM 的 ManyToM ...
- Python - Django - ORM 操作表
ORM 的对应关系: 类 ---> 数据库表对象 ---> 数据库行属性 ---> 字段 操作数据库表 ---> ...
- Python - Django - ORM 查询方法
models.py: from django.db import models class Human(models.Model): id = models.AutoField(primary_key ...
- python django ORM
1.在models.py中创创建类 # -*- coding: utf-8 -*- from __future__ import unicode_literals from django.db imp ...
- Python - Django - ORM 实例
准备工作: 首先创建一个名为 Py_Django 的数据库 新建项目,名为 mysite0 创建完成后需要进行几项配置 mysite0/settings.py 下 首先是 html 文件相关 其次是数 ...
- Python Django ORM 字段类型、参数、外键操作
AutoField(Field) - int自增列,必须填入参数 primary_key=True BigAutoField(AutoField) - bigint自增列,必须填入参数 primary ...
- Python Django ORM基本增删改查
工程下的urls.py中增加如下: from cmdb import views as cmdb #要把你要操作的项目import进来 urlpatterns = [ url(r'orm', cmdb ...
- Python Django ORM创建基本类以及生成数据结构
#在项目目录下的modules.py中创建一个类,来自动生成一张表UserInfo class UserInfo(models.Model): username = models.CharField( ...
- python - django (ORM使用步骤)
print('asd') """ # 1. 手动创建一个数据库 # 2. 在 Django 项目中设置连接数据库的相关配置(告诉Django 连接哪一个数据库) 在 DA ...
随机推荐
- arpg网页游戏特效播放(一)
网页游戏中的特效,主要包括:场景特效,攻击特效和UI特效三种.场景特效是在地图层上播放的特效,攻击特效主要是技能触发的一些特效,UI特效是面板上的一些特效,还有一些在人物身上播放的特效,例如脚底光圈特 ...
- 正则表达式,清除HTML标签,但要保留 <br>和<img>标签,其他的清除
最近有个需求, 要替换到html当中的除了br和img以外的所有标签, 遂百度之, 在百度知道遇到大神 , 在这记录一下 /<(?!\/?br\/?.+?>|\/?img.+?>)[ ...
- ULINK2配置
先要安装ULINK2的驱动 如果还没有检测到驱动的话,下个驱动人生,应该就行了.反正我就是这样弄成的^-^. 然后就是配置了 这样就可以下载了.
- SQLite数据库学习小结——native层实现
1. SQlite概述 SQLite是一款轻量.快速.跨平台的嵌入式数据库,是遵守ACID(注:ACID指数据库事务正确执行的四个基本要素的缩写.包含:原子性(Atomicity).一致性(Consi ...
- pycharm PYTHONPATH
Hi brandenju! I believe os.chdir doesn't affect PYTHONPATH so changing your working directory at run ...
- Msmq设计文档(赋源代码)
Msmq设计文档(赋源代码) Msmq设计文档 文件状态: [√] 草稿 [ ] 正式发布 [ ] 正在修改 文件标识: ECI-MSMQ v01 当前版本: 0.5 作 者: ...
- 洛谷 4389 付公主的背包——多项式求ln、exp
题目:https://www.luogu.org/problemnew/show/P4389 关于泰勒展开: https://blog.csdn.net/SoHardToNamed/article/d ...
- tyvj1061Mobile Service
题目:http://www.joyoi.cn/problem/tyvj-1061 dp.枚举三个人现在的位置. 1.重点:当前必有一人正处在查询点上!于是省掉一维. 2.转移方程枚举上一阶段的 j 和 ...
- java Scanner中的hasNext()方法
hasNext()方法判断输入(文件.字符串.键盘等输入流)是否还有下一个输入项,若有,返回true,反之false. Scanner sc = new Scanner(new File(" ...
- 因环境变量设置问题引起的command not found
ls command not found vi command not found 只要的原因是因为环境变量的问题,编辑profile文件没有写正确,导致在命令行下 ls等命令不能够识别.解决办法:在 ...