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里测试插入
可以看到默认值生效