首页 技术 正文
技术 2022年11月23日
0 收藏 525 点赞 3,147 浏览 1768 个字

Django models模型

一. 所谓Django models模型,是指的对数据库的抽象模型,models在英文中的意思是模型,模板的意思,在这里的意思是通过models,将数据库的借口抽象成python自己的一个类。然后在python Django框架其他代码文件中,可以通过在models代码文件中抽象出来的数据接口模型板模型类对数据库进行一系列的其他操作。

二. Django 对各种数据库都能提供很好的支持,如mysql,oracle,postgresql,sqlite等,diango为这些数据库提供了统一的调用API,我们可以根据自己业务需求选择不同的数据库。也就是缩django调用封装好这些数据库以后,我们对这些数据的操作都是一样的。

MySQL 是 Web 应用中最常用的数据库,现在接下来,我们都将以 Mysql 作为例进行测试学习,如果你没安装 mysql 驱动,可以执行以下命令安装:

sudo pip install mysqlclient

数据库配置:

我们在使用数据库的时候,需要在项目的 settings.py 文件中找到 DATABASES 配置项,配置一下有关数据的配置文件,使我们的django项目能远程连接到我们的数据库。

DATABASES = {

‘default’: {

‘ENGINE’:’django.db.backends.mysql’, # 或者使用 mysql.connector.django

‘NAME’: ‘test’,

‘USER’: ‘test’,

‘PASSWORD’: ‘test123’,

‘HOST’:’localhost’,

‘PORT’:’3306′,

}

}

注:我们这里这里添加了中文注释,所以你需要在项目的settings.py 文件头部添加

# -*- coding: UTF-8 -*-。

接下来在我们的项目中,无论是python项目文件还是html项目文件,只要我们使用中文或者使用中文注释,都必须在前面加上# -*- coding: UTF-8 -*-,来支持中文显示。

上面的配置文件中包含了数据库名称和用户的信息,它们与 MySQL 中对应数据库和用户的设置相同。Django 根据这一设置,与 MySQL 中相应的数据库和用户连接起来。

三.django定义规定,只要我们使用models数据库模板,就必须创建一个app实例,经测试,如果不启用实例,models会不起作用而且还会报错。以后这个待有机会再验证一下。

因为我们我们服务器暂时没安装mysql,django默认使用小型数据库sqlite,sqlite与mysql数据库在使用方式上相同,

我们创建一个关于数据库的模型,因为每个模型都是跟数据库相对应的,所以我们可以起一个关于数据的名字:

django-admin.py startapp bookmodels

我们也可以这样命名bookdb_models,这里我们暂时使用bookmodels命名。

目录结构如图所示:

Django models模型

添加代码如下:

# -*- coding: utf-8 -*-            //支持中文

from __future__ import unicode_literals

from django.db import models

class bookdb(models.Model):

book_id=models.AutoField(primary_key=True)

book_name = models.CharField(max_length=32)

pub_date=models.DateField()

price=models.DecimalField(max_digits=6,decimal_places=2)

publish=models.CharField(max_length=32)

注:只要使用models就必须加入这句话:

from django.db import models

意思是从django.db文件中引入models数据库模板,而django.db文件中封装了一个models模板类,用来表示和表达数据库,并通过这models类封装了数据库接口,并通过他对数据库进行操作。

注:models在django里面可以理解为就是数据库的意思。

而models中的Model,则代表数据库其中的一个表格模板。我们创建一个表,就需要调用这个Model表格模板。

相关推荐
python开发_常用的python模块及安装方法
adodb:我们领导推荐的数据库连接组件bsddb3:BerkeleyDB的连接组件Cheetah-1.0:我比较喜欢这个版本的cheeta…
日期:2022-11-24 点赞:878 阅读:8,964
Educational Codeforces Round 11 C. Hard Process 二分
C. Hard Process题目连接:http://www.codeforces.com/contest/660/problem/CDes…
日期:2022-11-24 点赞:807 阅读:5,486
下载Ubuntn 17.04 内核源代码
zengkefu@server1:/usr/src$ uname -aLinux server1 4.10.0-19-generic #21…
日期:2022-11-24 点赞:569 阅读:6,331
可用Active Desktop Calendar V7.86 注册码序列号
可用Active Desktop Calendar V7.86 注册码序列号Name: www.greendown.cn Code: &nb…
日期:2022-11-24 点赞:733 阅读:6,114
Android调用系统相机、自定义相机、处理大图片
Android调用系统相机和自定义相机实例本博文主要是介绍了android上使用相机进行拍照并显示的两种方式,并且由于涉及到要把拍到的照片显…
日期:2022-11-24 点赞:512 阅读:7,747
Struts的使用
一、Struts2的获取  Struts的官方网站为:http://struts.apache.org/  下载完Struts2的jar包,…
日期:2022-11-24 点赞:671 阅读:4,781