通过Django来对数据库进行增删改查
 
1 首先创建类,在app应用程序里面的model模块里面创建类,写好数据库信息,方便我们待会初始化:
2 创建在django项目里面的settings里面添加app程序()在settings里面的INSTALLED_APPS里面)
3 python manage.py makemigrations

4 python manage.py migrate
 
django 常用命令:
django :
  第一条命令是创建项目名,第二条是创建app,第三个同步(创建)数据库
python3 manage.py startproject project_name
python3 manage.py startapp app_name
python3 manage.py syncdb
 
 

拿models里面的一个类举例:

我们先看models创建一个数据库的方法:

class WebGroup(models.Model):
name = models.CharField(max_length=64)
brief = models.CharField(max_length=255,blank=True,null=True)
owner = models.ForeignKey(UserProfile)
admins = models.ManyToManyField(UserProfile,blank=True,related_name='group_admins')
members = models.ManyToManyField(UserProfile,blank=True,related_name='group_members')
max_members = models.IntegerField(default=200) def __str__(self):
return self.name
 
 
同步数据库

 python manage.py makemigrations
python manage.py migrate
本人使用的是django1.9.5版本
2.创建超级管理员
python manage.py createsuperuser 3.运行django
  python manage.py runserver 8000
 
1 增加数据
 
我们在views里面随便定义一个方法名,然后下如以下代码 ,写入以下代码:
if request.method == "POST":
input_em = request.POST['em'] # em 和 pwd都是和form表单里面的一一对应
input_pw = request.POST['pwd']
   print(input_pw,input_em)
models.UserInfo.objects.create(email=input_em, pwd=input_pw) #models调用的是先前创建好的数据库

  

当出现这个报错提示的时候,我们应该在html页面上的form表单里面添加这行内容: {% csrf_token %}   
<form action="/index/" method="post">
{% csrf_token %}
<input type="text" name="em"/>
<input type="text" name="pwd"/>
<input type="submit" value="添加"/>
</form>

  

  2 删除数据
models.UserInfo.objects.filter(email=input_em).delete()
3 更改数据:
models.UserInfo.objects.filter(email=input_em).update(pwd='nihao')
4 查看数据:
我们需要在HTML页面里嵌套jinja2的代码,下面代码能够在表单里面根据后台数据库的内容来展示,代码如下:
# 前端代码的jinja2语法如下
{% for line in user_info_list %} # user_info_list 实际上就是从models里面获取的对象。
<tr>
<td>{{ line.email }}</td> # 每个遍历出来的对象都有emmail这个属性,因为我们在定义这个表的时候就定义了email字段
<td>{{ line.pwd }}</td>
</tr>
{% endfor %}
后端django,views里面的方法
def index(request):
  # 数据库获取数据,数据和HTML渲染
  from app01 import models
  user_info_list = models.UserInfo.objects.all()
return render(request,'index.html',{'user_info_list':user_info_list})


Django 自带的ORM增删改查的更多相关文章

  1. django自带的orm增删改

    # 转载请留言联系 模型管理器 模型管理器:objects属性 每个模型类默认都有一个叫 objects 的类属性,它由django自动生成 我们把 objects 称为 模型管理器,其类型为: dj ...

  2. Django框架(三)—— orm增删改查、Django生命周期

    目录 orm增删改查.Django生命周期 一.orm介绍 二.orm增删改字段 三.Django生命周期 orm增删改查.Django生命周期 一.orm介绍 1.什么是orm ORM即Object ...

  3. ORM增删改查并发性能测试2

    前言 上一篇<ORM增删改查并发性能测试>出现了点小失误,有的输出SQL日志的代码没有禁用,数据库连接字符串可能有问题.统一环境,统一代码后,重新写一篇. 这次重点是并发性能测试,真不是为 ...

  4. 饮冰三年-人工智能-Python-24 Django ORM增删改查

    一:首先使用默认的sqlite3创建表 1:现在在models.py中添加表模型 from django.db import models # Create your models here. cla ...

  5. django ORM 增删改查 模糊查询 字段类型 及参数等

    ORM 相关 #sql中的表 #创建表: CREATE TABLE employee( id INT PRIMARY KEY auto_increment , name VARCHAR (), gen ...

  6. Django框架(三)-- orm增删改查、Django生命周期

    一.orm介绍 1.什么是orm ORM即Object Relational Mapping,全称对象关系映射. 2.使用orm的优缺点 优点: 不用写SQL语句 开发效率高 缺点: SQL的效率低 ...

  7. day054 组件 CBV FBV 装饰器 ORM增删改查

    组件: ​ 把一小段HTML 放在一个HTML中 nav.html ​ 使用: ​ {% include ‘nav.html ’ %} 一. FBV 和CBV 1.FBV(function base ...

  8. ORM增删改查

    目录 orm django 连接mysql顺序 1 settings配置文件中 2 项目文件夹下的init文件中写上下面内容, 补充 3 models文件中创建一个类(类名就是表名) 4.执行数据库同 ...

  9. Django 文件配置、pycharm及django连接数据库、表的增删改查 总结

    静态文件配置 1.你在浏览器中输入网址能够有响应的资源返回给你 是因为后端已经提前给你开设该资源的接口,也就意味着你所能 访问到的资源 都是人家事先定义好的 2.django如何给用户开设资源接口呢? ...

随机推荐

  1. NPOI2.0学习(三)

    HSSFWorkbook wk = new HSSFWorkbook();//你用来操作的HSSFWorkbook的实例 ICellStyle cellStyle = wk.CreateCellSty ...

  2. nios II--实验2——led软件部分

    软件开发 首先,在硬件工程文件夹里面新建一个software的文件夹用于放置软件部分:打开toolsàNios II 11.0 Software Build Tools for Eclipse,需要进 ...

  3. NLPIR分词工具的使用(java环境下)

    一.NLPIR是什么? NLPIR(汉语分词系统)由中科大张华平博士团队开发,主要功能包括:中文分词,词性标注,命名实体识别,用户词典功能,详情见官网:http://ictclas.nlpir.org ...

  4. bindService初步了解

    bindService的使用: 当需要调Service里面的方法时,可以用bindService() 首先定义一个类继承于Service,然后配置Manifest.xml文件 public class ...

  5. 东大OJ-1588: Routing Table

    题目描述 In the computer network, a Router is a device which finds an optimal way to transmit the datagr ...

  6. supervisor

    文章转自:http://cpper.info/2016/04/14/supervisor-usage.html在此只是当做笔记使用,不做他用     Linux进程管理工具supervisor安装及使 ...

  7. [转] easyui 获取数据表格中选中行的数据 Get selected row data from...

    原文地址:http://my.oschina.net/meSpace/blog/41463 http://www.easyui.net/2010/06/easyui-tutorial-get-sele ...

  8. 【转】向HTML中插入视频并兼容所有浏览器的方法

    原文地址:http://www.jb51.net/web/168548.html 向HTML中插入视频有两种方法,一种是古老的object标签,一种是html5中的video标签,前者兼容性相对好些, ...

  9. Swift开发小技巧--识别选中照片中的二维码

    识别选中照片中的二维码 点击相册按钮,打开用户相册 @IBAction func photoBtnClick(sender: AnyObject) { // 打开相册 // 1.判断是否能够打开相册 ...

  10. git log 格式化输出

    Git log --graph --pretty=format: '%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)& ...