Python——Django连接数据库


  • 今天学习的是连接mysql数据库,并对数据库进行简单的级联操作,添加外键操作。
  • 首先是连接mysql数据库的相关操作。
    • 1.下载一个pymysql的包。具体操作可以在terminal中pip一个,也可以在项目的settings操作中进行添加。
    • 2.下载完了之后,在项目的settings.py中,对DATABASE这一参数进行操作。设置数据库的位置等参数。
    DATABASES = {
      'default': {
          # MYSQL
          'ENGINE': 'django.db.backends.mysql',
          'NAME': 'JUST',
          'USER': 'root',
          'PASSWORD': 'Just123456',
          'HOST': 'cdb-rlerhd0g.cd.tencentcdb.com',
          'PORT': '10078'
      }
    }
    
    • 3.因为pymysql包是模拟相关操作的。因此需要在__init__.py文件中,输入两行代码。
    import pymysql
    pymysql.install_as_MySQLdb()
    
    • 4.进行了这么多操作之后,还是会出错,主要是针对版本不够新,会报错,此时可以参考https://blog.csdn.net/qq_37067475/article/details/90115641
      这一篇csdn博客。
  • 仿照视频的内容,我在two这一个项目中的models.py中进行了User类和Address类编写,Address中就含有一个外键,是指向User的。
class User(models.Model):
    u_username = models.CharField(max_length=32)
    u_password = models.CharField(max_length=14)


class Address(models.Model):
    u_address = models.CharField(max_length=14)
    u_name=models.ForeignKey(User, on_delete=models.CASCADE)
  • 在连接完成mysql的云数据库之后,进行数据迁移的相关操作。
  • 在进行级联数据测试之前,首先模拟了之前在views.py中使用的render函数的原型。
def index(request):
    two_index = loader.get_template('index.html')

    context = {
        "username": "Jack"
    }

    result = two_index.render(context=context)

    print(result)

    return HttpResponse(result)
  • 上面就是对render函数的模拟。首先项目会取出相应的html文件,然后再根据文本输入信息进行渲染,最后想客户端输出已经渲染完成的html文件。
  • 接下来就是根据外键,输出相关信息。
def get_address(request):
    address = Address.objects.get(pk=1)

    u_add = address.u_name

    return HttpResponse("Location " + address.u_address + " Address %s" % u_add.u_username)
  • 如果含有1对M的情况,可以选择函数中的set集,对外键对应的所有数据进行输出。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值