django连接mysql数据库_Django学习笔记(4)——Django连接数据库

前言在MVC或者MTV设计模式中,模型(M)代表对数据库的操作。那么如何操作数据库呢?本小节就认真学习一下。首先复习一下Django的整个实现流程 ,然后再实现一下使用数据库的整个流程,最后学习一下连接数据库需要了解的知识。但是这里想详细的进行学习,首先对Django 一些基本的知识点进行了解。1,Django的流程实现django#安装: pip3 install django添加环境变量#1 ...
摘要由CSDN通过智能技术生成

前言

在MVC或者MTV设计模式中,模型(M)代表对数据库的操作。那么如何操作数据库呢?本小节就认真学习一下。首先复习一下Django的整个实现流程 ,然后再实现一下使用数据库的整个流程,最后学习一下连接数据库需要了解的知识。

但是这里想详细的进行学习,首先对Django 一些基本的知识点进行了解。

1,Django的流程实现

django

#安装: pip3 install django

添加环境变量

#1 创建project

django-admin startproject mysite

---mysite

---settings.py

---url.py

---wsgi.py

---- manage.py(启动文件)

#2 创建APP

python mannage.py startapp app01

#3 settings配置

TEMPLATES

STATICFILES_DIRS=(

os.path.join(BASE_DIR,"template"),

)

STATIC_URL = '/static/'

# 我们只能用 STATIC_URL,但STATIC_URL会按着你的 STATICFILES_DIRS去找

#4 根据需求设计代码

url.py

view.py

#5 使用模版

render(req,"index.html")

#6 启动项目

python manage.py runserver 127.0.0.1:8090

#7 连接数据库,操作数据

model.py

2,代码填充

根据需求,我们先完成主程序(也就是mysite/urls.py)的内容:

from mysql01 import views

# admin 后台的路由,先注释掉

urlpatterns = [

path('admin/', admin.site.urls),

# 你的路由,重点是引号中的正则表达式和后面的业务逻辑函数

path('index/',views.index),

# url(r'index/',views.index),

]

注意:关于django.urls path 和django.conf.urls url 的区别,django中 url 和 path 都是配置路径,有什么不同呢?

path 和 url 是两个不同的模块,效果都是响应返回页面,path调用的是python第三方模块或者框架,而url则是自定义的模块。

当然,主要问题在于版本:  1.x版本用url   2.x 版本用path

再填充我们APP的views

from django.shortcuts import render

# Create your views here.

def index(req):

return render(req,'index.html')

完成自己写的index.html文件(随便写的,内容如下)

test

hello world

用户输入

当你写入一个HTML文件在templates中,为了让Django知道我们的HTML文件在哪里,需要修改settings文件的相应内容,但是默认情况下,他正好使用,无需修改,除非特殊情况。

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',

],

},

},

]

3,运行程式

直接输出下面代码即可运行Django:

python manage.py runserver

在浏览器输入下面代码即可显示index.html内容:

127.0.0.1:8000/index

一,使用Django自带的sqlite3数据库

Django通过自带的ORM框架可以操作数据库,并且自带轻量级的sqlite3数据库,Django默认使用SQLite数据库,因为Python源生支持SQLite数据库,所以我们无需安装任何程式,就可以直接使用,下面我们先练习一下。

1.1  在settings中,配置数据库相关参数

因为是自带的sqlite,所以无需修改,这里我们看一下:

# Database

# https://docs.djangoproject.com/en/2.1/ref/settings/#databases

DATABASES = {

'default': {

# 这里可以指定使用的数据库类型,例如mysql

'ENGINE': 'django.db.backends.sqlite3',

'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),

}

}

1.2 编译models.py

Django通过自定义python类的形式来定义具体的模型,每个模型的物理存在方式就是一个python的Class,每个模型代表数据库中的一张表,每个类的实例代表数据库中的一行数据,类中的每个变量代表数据库中的一列字段。

Django通过模型,将python代码和数据库操作结合起来,实现对SQL查询语言的封装。也就是说,你可以不会管理数据库,可以不会SQL语言,你同样能通过python的代码进行数据库的操作。DJango通过ORM对数据库进行操作,下面直接看代码:

from django.db import models

# Create your models here.

class UserInfo(models.Model):

'''

创建两个字段,最大长度是32,类型是char

'''

user = models.CharField(max_length= 32)

pwd = models.CharField(max_length= 32)

这里我们创建了两个字段,分别保存用户的名称和密码。

上面的代码,相当于下面的原生SQL语句。

CREATE TABLE UserInfo (

"id" serial NOT NULL PRIMARY KEY,

"user" varchar(30) NOT NULL,

"pwd" varchar(30) NOT NULL

);

注意:

Django默认自动创建自增主键ID,当然也可以自己指定主键。

上面的SQL语法基于PostgreSQL

更多字段和参数

每个字段有一些特有的参数,例如,CharField 需要 max_length 参数来指定VARCHAR 数据库字段的大小。还有一些适用于所有字段的通用参数。这些参数在文档中有详细定义,这里我们学习一下最常用的:

<1> CharField

字符串字段, 用于较短的字符串.

CharField 要求必须有一个参数 maxlength, 用于从数据库层和Django校验层

限制该字段所允许的最大字符数.<

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值