zoukankan      html  css  js  c++  java
  • Django数据库数据表操作

    • 建立表单

    django通过设置类来快速建表,打开models.py

    例:

    from __future__ import unicode_literals
    
     from django.db import models
    
     # Create your models here.
     # 新建一个类叫user,其实就是新建一张叫user的表
     class user(models.Model):
         username = models.CharField(max_length = 20)
         password = models.CharField(max_length = 20)
         # 此函数是为了用该名字来显示对象
         def __unicode__(self):
             return self.username

    我们可以看到数据库类有两个字段,分别是usernamepassword,其实django还会默认添加一个id字段

    同步数据库,在终端输入:

    python manage.py makemigrations
     python manage.py migrate
    • 在可视化数据库看到此表

    修改admin.py文件

    from django.contrib import admin
     from learning.models import user# 导入user类
    
     # Register your models here.
     admin.site.register(user)# 把user添加到admin
    • 数据表的操作

    每次对数据库操作都需要把其导入进来

    from learning.models import user
    • 插入

    假设我们要插入一条username='ben'password='ben'的记录(因为默认是非空的字段,所以要将所有字段都要填入,当然,默认的自增id除外),我们可以这样干

    user(username='ben', password='ben').save()
     #等同于SQL语句:INSERT INTO user(username,password) values ('ben','ben')
    • 查询

    假设我们要获取所有数据,则使用下面的语句:

    alldata = user.objects.all()
     #等同于SQL语句:SELECT * FROM user

    假设我们要通过一个字段来获取数据(具有唯一性),则使用下面的语句:

    onedata = user.objects.get(username='ben')
     #约等同于SQL语句:SELECT * FROM userWHERE username='ben'

    假设我们要通过过滤器来找多条数据,则使用下面的语句:

    datas = user.objects.filter(password__in=['ben','sam','jack'])
     #约等同于SQL语句:SELECT * FROM userWHERE username in ('ben','sam','jack')
    • 操作具体举例:(在views.py文件中)
    • def login(username, password):
             try:
                 person = user.objects.get(username=username)
                 try:
                     person = user.objects.get(username=username,password=password)
                     return '登录成功'
                 except:
                     return '登录密码错误'
             except:
                 return '不存在该用户'
      
         def register(username, password):
             try:
                 person = user.objects.get(username=username)
                 return '注册帐号已存在'
             except:
                 user(username=username,password=password).save()
                 return '注册成功'

     

  • 相关阅读:
    C#类的访问修饰符
    C#中抽象类和接口的区别
    C#正则表达式Regex类的介绍
    .net平台借助第三方推送服务在推送Android消息(极光推送)
    C#钩子类 几乎捕获键盘鼠标所有事件
    .net平台推送ios消息
    c# 滚动字幕的实现
    .net 序列化与反序列化
    Python学习---Django的新工程设置模板
    Python学习---DjangoForm的学习
  • 原文地址:https://www.cnblogs.com/dear_diary/p/5825948.html
Copyright © 2011-2022 走看看