orm——django操作MySQL数据库

手动新建一个数据库.

在setting.py中配置数据库的连接信息

DATABASES = {
    "default": {
        "ENGINE": 连接数据库的类型,
        "NAME": 数据库名称,
        "USER": 用户名,
        "PASSWORD": 密码,
        "HOST": 数据库的所在主机ip,
        "PORT": 端口,
    }
}

例如: 

django可以帮助我们再该数据库里面新建表格.

我们需要在models.py创建类,类名将作为自动生成表的名称.

执行

python manage.py makemigrations
python manage.py migrate

自动创建出的数据库如下, 其中app01_user_table是我们要求创建的表, 其他的是django默认创建并需要的.

注:id这个属性是自动创建的, 为主键且自增.

增删改查

 测试代码

def orm_test(request):
    #增
    User_table.objects.create(username='000',password='000',mobile='000')
    User_table.objects.create(username='111',password='111',mobile='111')
    input("按任意键继续")
    #删
    User_table.objects.filter(username='111').delete()
    input("按任意键继续")
    #改
    User_table.objects.filter(username='000').update(email='000')
    input("按任意键继续")
    #查
    #user_set=User_table.objects.filter(username='000')#查询指定信息
    user_set=User_table.objects.all()#查询所有信息
    print(user_set)
    for u in user_set:
        print(u.id,u.username,u.password,u.mobile,u.email)
    return HttpResponse("ok")

起始状态

增加后

删除后

 

修改后

 

 

 案例: 注册

def register(request):
    #如果是get请求,跳转到注册网址
    if request.method == 'GET':
        return render(request,'注册css.html')
    
    #获取post信息
    #print(request.form)
    mobile = request.POST.get('mobile')

    #查询用户信息, 判断用户是否存在
    #user_set = sql.sql_select(mobile=mobile)
    user_set = User_table.objects.filter(mobile=mobile)
    if user_set != None:
        print('该手机号已注册')
        return render(request,'注册css.html',{'msg':'该手机号已注册'})
    password = request.POST.get('password')

    #插入用户信息
    #sql.sql_insert(username=mobile,password=password,mobile=mobile)
    User_table.objects.create(username=mobile,password=password,mobile=mobile)
    return render(request,'登录css.html',{'msg2':'注册成功请登录'})

需要注意的是

django创建的数据库的默认值, 只在django内生效

例如: django里创建表格时, 将video_time设置为默认当前时间.

class Videos(models.Model):
    video_name = models.CharField(max_length=255)
    video_time = models.DateField(auto_now_add=True)#默认当前时间

但是查看表格属性, 可以发现并没有默认值,

测试插入默认值也不生效

在django里测试插入

可以看到默认值生效

posted @ 2024-03-12 17:03  台友涛  阅读(38)  评论(0编辑  收藏  举报