Django学习笔记(六)--models与mysql数据库接入

MySQL数据库自动生成Models文件导入Django MySQL数据库自动生成Models文件导入Django,Django小白专属! 阅读详情

在django项目的开始首先就是数据库的设计,这次不用django默认的sqlite数据库,使用mysql数据库,首先要接入mysql数据库

要接入mysql首先要有mysql驱动,python3 :pip install mysqlclient

python2:mysqldb,注意,这是个大坑


在setting.py

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'data',
        'USER':'root',
        'PASSWORD':'root',
        'HOST':'127.0.0.1',

    }
这里修改数据库密码,由于是mysql,所以要先创建数据库data

接下来点击run,跑一下项目,就可以在mysql中看到默认生成的表(真的是好方便,人生苦短,我用django)


接下来创建app

步骤:

命令行中进入 manage.py同级目录

执行python manage.py startapp app名(可选)


然后编写我们app的models

这里我们使用django默认的user(上图默认创建的auth_user表)来拓展我们的业务,通过继承它,来使用它的表里面设计好的内容



这里要导入django的AbstractUser模块,通过继承该类,添加你需要的属性

from django.db import models
from datetime import datetime
from django.contrib.auth.models import AbstractUser


class UserProfile(AbstractUser):
    nick_name = models.CharField(max_length=50, verbose_name='昵称', default='')
    birthday = models.DateField(null=True, blank=True, verbose_name='生日')
    gender = models.CharField(max_length=6, choices=(('male', '男'), ('female', '女')), default='female',
                              verbose_name='性别')
    address = models.CharField(max_length=100, default='', verbose_name='地址')
    mobile = models.CharField(max_length=11, null=True, blank=True, verbose_name='手机号')
    image = models.ImageField(max_length=100, upload_to='image/%Y/%m', default='image?default.png', verbose_name='头像')

    class Meta:
        verbose_name = '用户信息'
        verbose_name_plural = verbose_name

    def __str__(self):
        return self.username

编写好后,在setting中添加app,这里添加user

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'user',
]

这里要创建我们的衍生表(UserProfile)还要在setting中添加一条代码

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'user',
]
AUTH_USER_MODEL = "user.UserProfile"
通过这条AUTO_USER_MODEL 的代码就可以创建userProfile表


然后提交我们的models,

命令行中进入 manage.py同级目录

执行python manage.py makemigratetions app名(可选)

在执行python manage.py migrate


就能看到我们的UserProfile衍生表


这里是利用了我们django的默认user模板,省写了很多代码,熟练以后挺方便的,一般的models只要继承models的Model就行了

class Course(models.Model):
	pass

使用mysql关系库就是因为因为各表之间有关系,表与表有主要一对多的关系,
那么如何实现一对多的关系呢?
下面通过course(课程表)与lesson(章节表)为例,一个课程对应多个章节,是一对多的关系,
只要在多的一方(lesson表)添加course的外键就行
class Course(models.Model):
    
    name = models.CharField(max_length=52, verbose_name='课程名字')
    desc =  models.CharField(max_length=300, verbose_name='课程描述')   
    detail = models.TextField(verbose_name='课程详情')
    degree = models.CharField(choices=(('cj', '初级'), ('zj', '中级'), ('gj', '高级')), max_length=2, verbose_name='难度')
    

    class Meta:
        verbose_name = '课程'
        verbose_name_plural = verbose_name


# 章节信息
class Lesson(models.Model):
    course = models.ForeignKey(Course, verbose_name='课程')
    name = models.CharField(max_length=100, verbose_name='章节名')
    add_time = models.DateTimeField(default=datetime.now, verbose_name='添加时间')



6.5、Django -通过Models中JSONField来创建含JSON字段的MySQL表详解 在6.4中介绍了通过在MySQL中创建JSON字段来驱动Django的Models,从而生成JSONField,然而,会出现一些问题,原因是Django中没有JSONField(),系统会默认JSON的字段整为TextField()形式,也许这样对结果不会造成什么影响,然而,心里也很别扭,有个疙瘩,总觉得不完美,有一个梗,总觉得是一个BUG!那么,这次,终极BOSS来啦。下面就开始说,如何通过Dj... 阅读详情

相关推荐

Pycharm+Django+Python+MySQL开发(一)后台管理数据库

Django搭建后台管理系统,对接数据库

zez11的博客 4万+

Django使用echarts进行可视化展示(mysql数据库)

Django使用echarts进行可视化展示(mysql数据库)条件准备连接mysql导入数据使用echarts可视化展示 本文以学生成绩折线图展示为例 条件准备 电脑上有myslq数据库 有 echarts 的 js 文件 连接mysql # settings.py 文件 DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', # mysql 数据库名 'NAME':

zxctime的博客 1万+

Python框架篇之Django(Models数据表的创建、数据库配置)

文章目录一、数据库的配置二、Models数据表的创建三、在Pycharm中显示 一、数据库的配置 1、 django默认支持 sqlite,mysql, oracle,postgresql数据库。 sqlite:django默认使用sqlite的数据库,默认自带sqlite的数据库驱动 , 引擎名称:django.db.backends.sqlite3 mysql:引擎名称:django.db.backends.mysql 2、创建数据库文件 首先需要在自己的mysql中创建数据库 2、SQlite配

Viewinfinitely的博客 2212

基于Django+Mysql+Echarts的可视化大屏开发

做一个简单的可视化大屏,你需要掌握: - Python语言基础; - Django框架和MySQL数据库的使用; - echarts组件和JavaScript语言的使用; - 前后端数据交互的实现方式。

m0_63190901的博客 1万+

Django连接多数据库配置(mysql、mongo)

MYSQL setting配置如下 DATABASES = { "default": { "ENGINE": "django.db.backends.mysql", "NAME": "pay", "USER": "root", "PASSWORD": "123456", "HOST": "10.23.xxx.x...

weixin_42260422的博客 833

常用的3种数据库连接方法

常用的3种数据库连接方法,最近抽了点时间总结了一下,觉得以后有用,希望各位同学们可以看看.

django mysql数据显示,Django读取Mysql数据并显示在前端的实例

前言:由于使用django框架来做网站,需要动态显示数据库内的信息,所以读取数据库必须要做,写此博文来记录。接下来分两步来做这个事,添加网页,读取数据库;一、添加网页首先按添加网页的步骤添加网页,我的网页名为table.html, app名为web;table.html放到相应目录下;forms.py文件提前写好;修改views.py,做好视图修改url.py,添加路径至此可以访问http://1...

weixin_39992417的博客 699

大数据数据接入模板(直接表抽取方式)

大数据数据接入模板(直接表抽取方式),数据仓库抽取源系统相关信息要求

【小白适用】Django+Echarts+Mysql

Django+Echarts+Mysql

qq_43564015的博客 3653

uni-app刮奖

uni-app的刮奖效果,要注意的点: 1.小程序的canvas层级问题(可用cover-view规避) 2.不能操作dom 以下是uni-app刮奖效果的代码: <template> <!-- 刮奖 --> <view v-else class="scratch"> <view class="box"> &lt...

qq_40101922的博客 4307

【73页PPT】美的简单高效的管理逻辑(附下载方式)

其科技领先战略依托四级研发体系(中央研究院、事业部、前沿技术、产品开发)与 “三个一代” 模式(开发一代、储备一代、研究一代),构建全球研发布局(“2+4+N” 体系,含顺德、上海双总部,美、德、意、日四大研发中心及分布式创新节点),研发投入强度持续提升。MBS(美的精益运营体系)以 “12345” 为方法论:始于客户需求,借鉴顶级企业实践,以战略部署、人才育成、日常管理为核心,追求质量、交付、成本、创新四大目标,通过精益五步法(定价值、析流、促流动、拉系统、尽善美)实现全链条优化。

2501_92808811的博客 1102

图像分割和目标检测_如何进行图像分割和对象检测的数据探索,我必须学习

图像分割和目标检测This article was originally written by Jakub Cieślik posted on the Neptune blog. 本文最初由 JakubCieślik 撰写, 发布在 Neptune博客上 。 I’ve been working with object detection and image segmentation proble...

weixin_26750481的博客 3490

零基础使用Manim画傅里叶变换

0x01 准备工作 确保你的电脑中安装的有:Python(3.6以上版本,推荐3.8)、FFmpeg(在PATH环境变量中)、LaTex发行版,如果这些都有了,就可以跳过这步。 下面是安装指南: Python:Win10用户直接在微软商店搜索Python3.8安装,也可以自行百度安装方法,在开始菜单右键打开PowerShell,或者Win+R输入PowerShell打开,输入Pyhton --version,显示3.8以上。 FFmpeg:可以直接百度下载,或者用我打包好的(下载链接)。下载好后,将ff

TagBug的博客 3191

liberty配置mysql数据源_Django学习笔记(六)--models与mysql数据库接入

在django项目的开始首先就是数据库的设计,这次不用django默认的sqlite数据库,使用mysql数据库,首先要接入mysql数据库要接入mysql首先要有mysql驱动,python3 :pip install mysqlclientpython2:mysqldb,注意,这是个大坑在setting.pyDATABASES = {'default': {'ENGINE': 'django....

weixin_30780097的博客 346

HRnet的pytorch实现

HRnet的pytorch实现

奋土的博客 1953

某头部能源集团“数据治理”到“数智应用”跃迁案例剖析

本次案例能源企业实现了从“数据可用”到“指标驱动”再到“智能决策”的全链条升级,标志着集团在数字化、智能化治理能力上的系统跃升,构建起面向未来的数智管理新范式。

a958014226的博客 1258

Django连接MySQL数据库

Django连接MySQL数据库并导入数据

FlymaAqi,芜湖,飞马阿起,passion!passion! 6473

【AI大模型应用开发】教你用AI轻松将你的知识库变为知识图谱(附完整代码,直接运行)

本文我们来介绍如何使用AI,将自己的知识库自动转换为知识图谱,并进行可视化展示。

同学小张的博客 3927

Django框架MySQL数据库到models模型的映射关系

一、前言 我的数据库已经用MySQL Workbench设计好了,也插入了一些测试数据,现在开始在Django中设计models模型。本以为顺风顺水,没想到也遇到一些bug,现在记录一下踩坑填坑过程。 二、设计models模型 1. 如果数据库中表的数量比较多,可以先导出,然后查看对应表的字段,根据不同表设计不同的models类,根据同一张表的不同字段设计类属性。 用MySQL Workb...

IT菜鸟 2688

RK35X8调试YT8531单网口千兆以太网PHY芯片,修复ping不通或者IP地址丢失的问题

RK35X8上调试YT8531以太网PHY

荻夜的博客 3976

相机标定(六)—— 张正友标定法

相机标定一、相机标定的目的1. 相机的成像过程2. 相机标定的目的3. 畸变与畸变矫正二、张正友标定法简介三、标定相机内外参1. 求解内参和外参的积2. 求解内参矩阵3. 求解外参矩阵四、标定相机的畸变参数五、L-M算法参数优化六、相机标定的步骤七、源代码 一、相机标定的目的 1. 相机的成像过程 2. 相机标定的目的 3. 畸变与畸变矫正 二、张正友标定法简介 三、标定相机内外参 1. 求解内参和外参的积 2. 求解内参矩阵 3. 求解外参矩阵 四、标定相机的畸变参数 五、L-M算法参数优化 六、相机

weixin_41480034的博客 1万+

Django2 - 编写urls,views,models

编写views views:作为MVC中的C,接收用户的输入,调用数据库Model层和业务逻辑Model层,处理后将处理结果渲染到V层中去。 polls/views.py: 1 2 3 4 5 fromdjango.httpimportHttpResponse # Create your views he...

lunco的博客 514

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

Django操作MySql详细教程

Django中每一个模型model都对应于数据库中的一张表,每个模型中的字段都对应于数据库表的列。方便的是,django可以自动生成这些create table, alter table, drop table的操作。其次Django为咱们也提供了后台管理模块(Django-Admin),主要功能是通过后台管理来实现客户端的功能,可以对数据进行增删改查。也可以通过该功能进行二次开发 Djang...

胖虎 3万+

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

Django2学习笔记--从已有mysql数据库创建Models

文章来源:https://baijiahao.baidu.com/s?id=1664496770581523630&wfr=spider&for=pc 在创建完之后, 大家如果要连接mysql数据库的时候,可能存在一些麻烦的事情,比如:我们在Models里面写数据表的时候不太方便,如:idcard = models.CharField(primary_key=True, max_length=255),此时,我们可以在Navicat里面创建数据库与数据表,这样会更方便,但创建完之后怎么才能同

tzkj_wdz 222

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

Django数据库反向生成models

1.setting.py配置: DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', 'NAME': 'XXX', #数据库名 'USER': 'xxx', #登录名 'PASSWORD': 'xxx', #密码 'HOST': '...

菜鸟猿小天 1621
上一篇: Django学习笔记(五)--python虚拟环境的搭建(window)
下一篇: Django学习笔记(八)--xadmin的安装与应用
oldbig_lin
博客等级 码龄10年 78粉丝 72原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值