Django-orm连接mysql

Django-orm连接mysql

  • MVC框架中包括一个重要的部分,就是ORM,它实现了数据模型与数据库的解耦,即数据模型的设计不需要依赖于特定的数据库,通过简单的配置就可以轻松更换数据库
  • ORM是“对象-关系-映射”的简称,主要任务是:
    • 根据对象的类型生成表结构
    • 将对象、列表的操作,转换为sql语句
    • 将sql查询到的结果转换为对象、列表
  • 这极大的减轻了开发人员的工作量,不需要面对因数据库变更而导致的无效劳动
  • Django中的模型包含存储数据的字段和约束,对应着数据库中唯一的表
    在这里插入图片描述

1.环境配置

1.1mysqlclient安装

pip install mysqlcilent
pip install -i https://pypi.douban.com/simple mysqlclient
阿里云 http://mirrors.aliyun.com/pypi/simple/ 
中国科技大学 https://pypi.mirrors.ustc.edu.cn/simple/ 
豆瓣(douban) http://pypi.douban.com/simple/ 
清华大学 https://pypi.tuna.tsinghua.edu.cn/simple/ 
#第一行命令不行尝试第二行,再不行就换源尝试,我是用阿里的直接成功了

如果是windonws环境可能不能直接安装,需要进行以下步骤:

  • 下载mysqlcilent安装包:https://www.lfd.uci.edu/~gohlke/pythonlibs/#mysqlclient
  • 进入mysqliclient路径:输入 pip Install mysqliclient

如果实在不行,这边建议您百度或者降低django版本。

1.2setting配置

DATABASES = {
   
	    'default': {
   
	        'ENGINE': 'django.db.backends.mysql',
	        'NAME': 'student',
	        'USER': 'root',
	        'PASSWORD': 'root',
	        'HOST': '127.0.0.1',
	        'PORT': '3306',
	    }
	}
# 在应用创建之后记得加入install_app项

2.创建表

下面的介绍以我写的一个用户注册登录程序为例

在model.py文件内创建一个继承了 modles.Model的类,这就会在数据库内创建一个对应的表,注意表的名称为models.py所在的问价夹名_你创建的类名

# models.py
from django.db import models

class models_db1(models.Model):
    UserName = models.CharField(max_length=11)
    PassWord = models.CharField(max_length=11)

在这里我的app名为models_lr,所以在数据库查到的对应的表名为models_lr_models_db1

3.注册

写完类之后需要注意在对应的admin.py里进行注册

admin.py

from django.contrib import admin

from models_lr.models import models_db1

admin.site.register(models_db1)

4.生成迁移文件并迁移

#在terminal 终端输入
python manage.py makemigrations #生成迁移文件,在对应文件夹的migrations问价夹里可以找到
#再输入
python manege.py migrate #数据迁移

5.views视图函数里对数据库进行操作

from django.shortcuts import render, redirect

from models_lr import models


def get_un(UN):  #从数据库中获取数据
    s = models.models_db1.objects.filter(UserName=UN).values()
    for i in s:
        i = str(i)
        return str(i.split(' ')[3][1])
#不知道为什么我获取到的是一个对象 所以要在后面加values()来取值

def updata_db(u, p):  #因为不会写加入的英语。这其实是一个增加数据的操作
    updata = models.models_db1()
    updata.UserName = u
    updata.PassWord = p
    updata.save()

def cheak_cookie(fun): #检测cooike值来做一个持续登录
    def wa(request):
        if request.COOKIES.get('COOKIE')!=None:
            return fun(request)
        else:
            return render(request,'login.html',context={
   'a':'cookie已失效,请重新登录'})
    return wa
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值