zoukankan      html  css  js  c++  java
  • Django 自带的ORM增删改查

     通过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})


    
    
  • 相关阅读:
    Scrum Meeting 6 -2014.11.12
    Scrum Meeting 5 -2014.11.11
    Bing词典vs有道词典比对测试报告——体验篇之成长性及用户控制权
    团队项目的用户需求及反馈
    Scrum Meeting 4 -2014.11.8
    Scrum Meeting 3 -2014.11.5
    bing词典vs有道词典对比测试报告——功能篇之细节与用户体验
    Bing词典vs有道词典比对测试报告——功能篇之辅助功能,差异化功能及软件的效能
    Bing词典vs有道词典比对测试报告
    hdu 5087 次长升序串的长度
  • 原文地址:https://www.cnblogs.com/liaojiafa/p/5638472.html
Copyright © 2011-2022 走看看