1、如果要使用mysql数据库在settings.py文件中将默认使用sqllite3数据库改为mysql数据库:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'liuyanban', # 数据库的名称
'USER': 'root',
'PASSWORD': '123456',
'HOST': 'localhost',
}
}
2、上述步骤做完之后先在数据库中创建对应的数据库,然后在models.py文件中配置数据库的字段:
class LiuYanBan(models.Model):
# 下面分别是数据库中对应表的四个字段
pid = models.AutoField(primary_key=True)
user_name = models.CharField(max_length=20, default=None)
class Meta:
# 自定义数据库名称
db_table = 'liuyan'
3、在项目中的cmd中分别运行以下命令:
# makemigrations这句的作用是:获取modles.py文件中获取的修改部分,程序第一次运行时可以不执行这个
python manage.py makemigrations
# migrate这句的作用是:将models.py文件中修改的部分同步到数据库中,在程序第一次运行时这一句必须要执行。
python manage.py migrate
4、在views.py文件中进行数据操作:
a> 添加数据:
# 第一种添加数据
# Person.objects.create(user_name='张三', user_height=180)
# 第二种添加数据
# p = Person(user_height=102)
# p.save()
# 第三种添加数据
# p = Person()
# p.user_name = '李明'
# p.user_height = 170
# p.save()
# 第四种添加数据
# 在创建新的数据之前,先查询数据库中是否已经存在对应的数据,如果已经存在就不再创建这个对象了。可以起到一定的去重作用。
Person.objects.get_or_create(user_name='李四', user_height=180)
b> 数据的查询
# 1、单条数据查询:get(),参数就是查询条件,可以使类中的属性。
p = Person.objects.get(user_name='李四')
# 2、多条数据查询:filter(),参数就是查询提哦案件,查询结果是一个结果集QuerySet。
p = Person.objects.filter(user_height=170).first()
# 3、查询所有数据:all(),返回值也是一个结果集QuerySet。
p = Person.objects.all()
return render(request, 'index.html', {'p': p})
c> 数据的修改
p = Person.objects.get(user_name='李四')
p.user_height = 100
p.save()
# update():参数就是更新的数据。这个函数是更新所有的数据。
Person.objects.update(user_height=50)
d> 数据的删除
Person.objects.get(user_name='李四').delete()
如果是从网页上通过get/post请求返回来的数据,先获取在写入:
POST:
获取数据(post):
# get请求获取数据只需要将'POST'替换为‘GET’即可
# 括号中的值为html页面中对用input标签的name的属性值
name = request.POST.get('name')
email = request.POST.get('email')
dizhi = request.POST.get('address')
content = request.POST.get('message')
添加数据:
l = LiuYanBan(name=name, email=email, dizhi=dizhi, content=content)
l.save()