Django使用数据库(Mariadb/Mysql)
Django默认使用SQLite作为数据库,配置文件在settings.py
让我们来看一下
"""
Django settings for test1 project.Generated by 'django-admin startproject' using Django 2.1.4.For more information on this file, see
https://docs.djangoproject.com/en/2.1/topics/settings/For the full list of settings and their values, see
https://docs.djangoproject.com/en/2.1/ref/settings/
"""import os# Build paths inside the project like this: os.path.join(BASE_DIR, ...)
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))# Quick-start development settings - unsuitable for production
# See https://docs.djangoproject.com/en/2.1/howto/deployment/checklist/# SECURITY WARNING: keep the secret key used in production secret!
SECRET_KEY = 'm5e#rg35zpd6m+ms*(rv0prfw#(()suuily9jr((-9dlq5b(j1'# SECURITY WARNING: don't run with debug turned on in production!
DEBUG = TrueALLOWED_HOSTS = []# Application definitionINSTALLED_APPS = ['django.contrib.admin','django.contrib.auth','django.contrib.contenttypes','django.contrib.sessions','django.contrib.messages','django.contrib.staticfiles',
]MIDDLEWARE = ['django.middleware.security.SecurityMiddleware','django.contrib.sessions.middleware.SessionMiddleware','django.middleware.common.CommonMiddleware','django.middleware.csrf.CsrfViewMiddleware','django.contrib.auth.middleware.AuthenticationMiddleware','django.contrib.messages.middleware.MessageMiddleware','django.middleware.clickjacking.XFrameOptionsMiddleware',
]ROOT_URLCONF = 'test1.urls'TEMPLATES = [{'BACKEND': 'django.template.backends.django.DjangoTemplates','DIRS': [os.path.join(BASE_DIR, 'templates')],'APP_DIRS': True,'OPTIONS': {'context_processors': ['django.template.context_processors.debug','django.template.context_processors.request','django.contrib.auth.context_processors.auth','django.contrib.messages.context_processors.messages',],},},
]WSGI_APPLICATION = 'test1.wsgi.application'# Database
# https://docs.djangoproject.com/en/2.1/ref/settings/#databasesDATABASES = {'default': {'ENGINE': 'django.db.backends.sqlite3','NAME': os.path.join(BASE_DIR, 'db.sqlite3'),}
}# Password validation
# https://docs.djangoproject.com/en/2.1/ref/settings/#auth-password-validatorsAUTH_PASSWORD_VALIDATORS = [{'NAME': 'django.contrib.auth.password_validation.UserAttributeSimilarityValidator',},{'NAME': 'django.contrib.auth.password_validation.MinimumLengthValidator',},{'NAME': 'django.contrib.auth.password_validation.CommonPasswordValidator',},{'NAME': 'django.contrib.auth.password_validation.NumericPasswordValidator',},
]# Internationalization
# https://docs.djangoproject.com/en/2.1/topics/i18n/LANGUAGE_CODE = 'en-us'TIME_ZONE = 'UTC'USE_I18N = TrueUSE_L10N = TrueUSE_TZ = True# Static files (CSS, JavaScript, Images)
# https://docs.djangoproject.com/en/2.1/howto/static-files/STATIC_URL = '/static/'
我们可以看到其中的
DATABASES = {'default': {'ENGINE': 'django.db.backends.sqlite3','NAME': os.path.join(BASE_DIR, 'db.sqlite3'),}
}
就是默认的配置了,默认配置的SQLite数据库并不需要添加其它的东西
但是由于我们要使用Mysql/mariadb,所以我们要配置一些其他的东西,例如数据库地址、端口等
如何配置Mysql/Mariadb数据库
首先我们需要安装合适的database bindings,这里我们选择安装PyMySQL
打开设置
选择project
最上面我们可以选择使用本机安装的那个Python,点击右边的加号即可添加其它的包
点击+号,搜索pymysql,点击添加即可
安装成功示意
接下来我们要在外层的__init__.py文件中写入如下代码
import pymysqlpymysql.install_as_MySQLdb()
最后配置settings.py中的DATABASES部分就可以了
DATABASES = {'default': {'ENGINE': 'django.db.backends.mysql','NAME': 'test','USER': 'root','PASSWORD':'密码','HOST':'localhost','PORT':'3306',}
}
各项配置解释
ENGINE
数据库引擎,可选项'django.db.backends.sqlite3','django.db.backends.postgresql','django.db.backends.mysql',或 'django.db.backends.oracle'等
NAME
数据库的名字
USER
数据库用户名
PASSWORD
数据库密码
HOST
数据库地址
PORT
数据库端口
修改时间
Django默认使用的是UTC时间,如果不修改的话在之后的使用中可能会遇到一些问题,因此这里不要忘记修改一下时间
修改settings.py文件中的TIME_ZONE即可
TIME_ZONE = 'UTC'
改为
TIME_ZONE = 'Asia/Shanghai'
测试数据库是否成功连接
进入外层目录也就是manage.py所在的目录,cmd命令行下执行以下命令
python manage.py migrate
出现如下命令,并且查看数据库新建了一些表,说明配置是正确的
注:生成的表可能不一样这个与settings.py 文件和每个应用的数据库迁移文件有关
相关文章:

I2C和SPI总线优缺点对比
IIC vs SPI现今,在低端数字通信应用领域,我们随处可见IIC (Inter-Integrated Circuit) 和 SPI (Serial Peripheral Interface)的身影。原因是这两种通信协议非常适合近距离低速芯片间通信。Philips(for IIC)和Motorola(…

查看CentOS的网络带宽出口
检查维护系统的时候,经常会要查看服务器的网络端口是多大的,所以需要用到Linux的一个命令。 如何查看CentOS的网络带宽出口多大?可以用下面的命令来查看。 # ethtool eth0 前面是命令,后面跟的是设备名,如果对外连接的…

【ACM】删数问题(待更)
【描述】键盘输入一个正整数N,去掉其中任意S个数字后剩下的数字按原左右次序将组成一个新的正整数。编程对给定的N和S寻找一种方案使得剩下的数字组成的新数最小。(N不超过240位,N>S) 【输入】两行,第一行…

2019,商业智能的10大未来趋势
2019独角兽企业重金招聘Python工程师标准>>> 当我们深思熟虑接下来会发生什么时,Tableau 收集了来自内外部专家的广泛意见。内部专家们把握着行业的脉搏,并与世界各地成千上万的客户接洽交流;外部专家们则与众多数据团队并肩作战&…

c语言信号机制以及中断
用户态到内核态切换途径: 1:系统调用 2:中断 3:异常 中断类型分为如下两大类: 一、强迫性中断:正在运行的程序所不期望的,来自硬件故障或外部请求。 1、I/O 中断:来自…

【ACM】纸牌搭建
【题目】现有N张扑克牌,最多可以搭建几层 【题目分析】找到通项公式 f[ i ]f[ i-1 ]3*i-1。先打出表,再二分搜索。不断缩小范围。 #include <iostream> #include <cstdio> #include <cstring> #include <algorithm> using na…

DataBase 之 拉链表结构设计
一、概念 拉链表是针对数据仓库设计中表存储数据的方式而定义的,顾名思义,所谓拉链,就是记录历史。记录一个事物从开始,一直到当前状态的所有变化的信息。 在历史表中对客户的一生的记录可能就这样几条记录,避免了按每…

给每个函数写一个记录日志的功能.
# 功能要求: 每一次调用函数之前, 要将函数名称, 时间节点记录到log的日志中.# 所需模块:# import time## def logger(fn):# def inner(*args, **kwargs):# # fn.__name__ # 函数名字# f open("log", mode"a", encoding"utf-8&q…

c如何正常中断一个运行的线程
最近开发一些东西,线程数非常之多,当用户输入CtrlC的情形下,默认的信号处理会把程序退出,这时有可能会有很多线程的资源没有得到很好的释放,造成了内存泄露等等诸如此类的问题,本文就是围绕着这么一个使用场…

Vertica 分区表设计(续)
在上篇Vertica 分区表设计中,已经提过了Vertica的分区表创建和分区删除,但举例上并不系统, 本篇文章将系统的对分区表设计及后续的删除分区进行讲解。 概述:Vertica分区表(天和月)创建以及删除分区 1.分区表…

【ACM】杭电OJ 1181
http://acm.hdu.edu.cn/showproblem.php?pid1181 DFS搜索(递归函数) #include <iostream> #include <cstdio> #include <cstring> #include <algorithm> #include <cstdlib> using namespace std; char s[1000]; int k…

最热开源无服务器函数:五大Fission架构参考
“无服务器”现在是极具诱惑的技术趋势,没有什么比管理服务器更让人痛苦。亚马逊、微软和谷歌都在云中提供无服务器专有接口。相较于这些云供应商的商业化产品,开源无服务器架构可免于被云厂商锁定,但要以牺牲云便利性和易用性为代价。近一年…
高德API+Python解决租房问题
项目简介:编写Python脚本爬取某租房网站的房源信息,利用高德的 js API 在地图上标出房源地点,划出距离工作地点1小时内可到达的范围,附上公交路径规划功能查看不同路径的用时。 本教程由ekCit发布在实验楼,完整教程及在…

SIMD向量化运算
随着机器学习等人工智能技术的飞速发展,矩阵乘法的应用越来越多,intel芯片先后提供了不同系列的向量指令,包括mmx、sse、avx等,支持simd操作。后来为了更好地支持矩阵乘法,又增加了fma(Fused Multiply-Add&…
【数据结构】二叉树及其相关操作
二叉树的定义 二叉树是一个由结点构成的有限集合,这个集合或者为空,或者由一个根节点及两棵互不相交的分别称作这个根节点的左子树和右子树的二叉树组成。 二叉树并非一般的树形结构的特殊形式,它们是两种不同的数据结构。 二叉树与一般树…
函数节流与函数防抖
什么是函数节流与函数防抖 举个栗子,我们知道目前的一种说法是当 1 秒内连续播放 24 张以上的图片时,在人眼的视觉中就会形成一个连贯的动画,所以在电影的播放(以前是,现在不知道)中基本是以每秒 24 张的速…

makefile 中 =, :=, ?=, +=的区别
在Makefile中我们经常看到 : ? 这几个赋值运算符,那么他们有什么区别呢?我们来做个简单的实验 新建一个Makefile,内容为: ifdef DEFINE_VRE VRE “Hello World!” else endif ifeq ($(OPT),define) VRE ? “Hello W…

ubuntu 编译源码包 dsc diff.gz orig.tar.gz
2019独角兽企业重金招聘Python工程师标准>>> 1) 在获取源码包之前,确保在软件源配置文件/etc/apt/sources.list中添加了deb-src项以tree实用程序(以树型结构获取目录树)为例,介绍Ubuntu中如何管理源码包&am…

【ACM】杭电OJ 2552
本来还查了atan 和 atan2 的用法,结果总是WA 看了解析之后才知道原来是要公式推导,最后得出所求的式子是一个等式,结果为1。 所以,以后出类似与数学公式的题,可能是要手算推到,在输出特定的结果。&#x…

蚂蚁金服天街:OceanBase 在大促 5 年来的技术演进
为了与金融从业者、科技从业者共同探讨金融 业务的深层次问题,蚂蚁金服联手 TGO 鲲鹏会,在 12 月 8 日举办了「走进蚂蚁金服:双十一背后的蚂蚁金服技术支持」活动。蚂蚁金服高级技术专家天街为大家分享了《蚂蚁双 11 大促 OceanBase 核心技术…

OTA升级flash分区
什么是在线OTA升级 - OTA是Over-the-Air的简写,空中下载技术的意思。 - OTA在线升级在日常消费电子产品中很常见,比如手机,机顶盒等,通过网络,下载升级数据包,更新操作系统等底层固件进行…

MD5与Base64的思考
MD5加密是对任意长的数据使用MD5哈稀算法散列为4个32位组,若格式化为ASCII字符则为16字符,若格式化16进制表示,则为32字符. (MD5的具体算法请参阅相关书籍和资料)MD5广泛用于数据校验和完整性检验.且不可逆.理论上为抗碰撞的在2004年8月17日,MD5遭遇重创,山东大学的王小云做了…
【ACM】杭电OJ 1076
数组要开的大一些,一开始数组只开到100005,就显示了错误的数据 AC代码: #include <iostream> #include <cstring> using namespace std; const int maxn 10000005; int a[maxn]; int main () {int i;memset(a,0,sizeof(a));fo…

IDEA ctrl+alt+L 格式化快捷键无效时解决
这几天发现自己Intellij IDEA ctrlaltL格式化代码无效 设置里面按照快捷键搜索 按了 ctrlaltL 也没反应 但是我设置的确实是默认的 ctrlaltL 最后终于找到了问题所在 原来是开网易云音乐的锅 网易云会有一个全局的快捷键ctrlaltL跟idea冲突 去网易云关了就好了 转载于:https:/…

gpio pin和pad的区别
PIN指芯片封装好后的管脚,即用户看到的管脚; PAD是硅片的管脚,是封装在芯片内部的,用户看不到。 PAD到PIN之间还有一段导线连接的。
【ACM】杭电OJ 1013
WA代码 输入很大的数的时候会输出“-1”,所以考虑用字符数组来储存输入的数据。 #include <iostream> #include <cstring> #include <cstdio> using namespace std; long long sum; long long fun (int n) {sum0;if(n<9) return n;while(n){s…

\\s+ split替换
出自: http://www.tuicool.com/articles/vy2ymm 详解 "\\s" 正则表达式中\s匹配任何空白字符,包括空格、制表符、换页符等等, 等价于[ \f\n\r\t\v] \f -> 匹配一个换页\n -> 匹配一个换行符\r -> 匹配一个回车符\t -> 匹配一个制表…

ubuntu18.04下双机驱动调试
环境搭建:https://blog.51cto.com/haidragon/2337256这里要先说下如果要下内核断点要先在编译前去掉写保护,但是下自己写的驱动可以不要。第二个最好编译完后压缩vm系统文件然后复制一份,这样就调试机与被调试机环境一模一样,同样…

如何独立开发一个网络请求框架
(原创出处为本博客:http://www.cnblogs.com/linguanh/) 目录: 前言 准备工作 开发模式 开发原则 线程 高并发 TCP/UDP 本类介绍 开发选择 功能列表 优点 拓展 完整代码 用法例子 前言: 已开源到GitHub,希望…
【ACM】杭电OJ 1284(待更)
#include<iostream> using namespace std; int main(){int n;while(cin>>n){int ans0; for(int i0;i<n/3;i){ //对3的个数进行枚举 int temp(n-3*i); //除了这i个3之外剩余的钱数 //temp/2,剩余部分换成2的总种类数,anstemp/21; //这…