Django学习(2)数据宝库

本文涉及的产品
云数据库 RDS MySQL Serverless,0.5-2RCU 50GB
简介: 数据库是一所大宝库,藏着各种宝贝。一个没有数据库的网站,功能有限。在Django中,支持的数据库有以下四种:SQLite3MySQLPostgreSQLOracle其中SQLite3为Django自带数据库,无需安装。

数据库是一所大宝库,藏着各种宝贝。一个没有数据库的网站,功能有限。在Django中,支持的数据库有以下四种:

  • SQLite3
  • MySQL
  • PostgreSQL
  • Oracle

其中SQLite3为Django自带数据库,无需安装。Django要求MySQL4.0或更高的版本。
本文将介绍如何在Django中连接并操作MySQL.请确保你的系统里已安装MySQL以及Python模块pymysql.
首先新建项目Book,并在Book项目中新建应用books:

django-admin.py startproject Book
cd ./Book
django-admin.py startapp books

其中Book文件夹的树形结构如下图:
这里写图片描述
在settings.py中添加app:
这里写图片描述
并修改数据库连接方式为MySQL:
这里写图片描述
其中,ENGINE连接方式为MySQL。NAME为数据库名称,我们这里选择Book,前提是你的MySQL中已经创建好Book数据库。USER和PASSWORD为MySQL的用户名和密码。HOST和PORT分别选择本地连接和3306.
这样我们已经连接好MySQL的Book数据库,接下来需要创建表格。这可以在books的models.py中定义,代码如下:

from django.db import models

class MYBOOK(models.Model):
    name = models.CharField(max_length=200)
    price = models.FloatField()
    def __str__(self):
        return self.name+':'+str(self.price)

在上述模型中,我们定义了name和price字段,并用str()函数返回name:price的形式。接着我们需要将Django中的模型与MySQL数据库连接:
这里写图片描述
这里写图片描述
以上表明Django中的模型与MySQL数据库连接完成。我们可以去MySQL中查看:
这里写图片描述
这里写图片描述
其中books_mybook是模型生成的表格,是张空表格。那么该如何操作该表格呢?Django已经帮我们想好办法了,一种是利用shell命令行,一种是在books文件夹的views.py中操作。
首先我们先尝试用shell命令行模式,只需输入以下命令行:

python3 manage.py shell

进入IPython后进行以下操作:

In [1]: from books.models import MYBOOK

In [2]: MYBOOK.objects.create(name="Dive into Python", price=50.5)
Out[2]: <MYBOOK: Dive into Python:50.5>

In [3]: MYBOOK.objects.create(name="Dive into Scala", price=48.6)
Out[3]: <MYBOOK: Dive into Scala:48.6>

In [4]: MYBOOK.objects.create(name="Dive into Java", price=67.4)
Out[4]: <MYBOOK: Dive into Java:67.4>

In [5]: MYBOOK.objects.all()
Out[5]: [<MYBOOK: Dive into Python:50.5>, <MYBOOK: Dive into Scala:48.6>, <MYBOOK: Dive into Java:67.4>]

Django用类的实例表示表格的记录,所以需要导入MYBOOK类。MYBOOK.objects.create(name=”Dive into Python”, price=50.5)表示增加一条记录,MYBOOK.objects.all()则返回所有记录。我们可以去看看这时MySQL中的情况:
这里写图片描述
books_mybook确实已增加了三条记录!!!关于更多的操作数据库的命令可以参考:https://docs.djangoproject.com/en/2.0/topics/db/queries/
第二种方法是在books文件夹的views.py中操作,代码如下:

from django.shortcuts import render
from books.models import MYBOOK
from django.http import HttpResponse

def insert_and_show(request):
    #insert records into table using three methods
    MYBOOK.objects.create(name="Learning Scrapy",price=30)
    p = {'name':"Linux Shell", 'price':25}
    MYBOOK.objects.create(**p)
    q = MYBOOK(name='Learning Pyspark', price=20)
    q.save()
    #show the records in webpage
    book_list = MYBOOK.objects.all()
    string = "TABLE MYBOOK:<br/>"
    for _ in book_list:
        string += str(_)+'<br/><br/>'

    return HttpResponse(string)

该代码前半部分用三种方式插入数据,后半部分则是为了在网页中显示。
在urls.py中增加新的url:
这里写图片描述
启动server服务:

python3 manage.py runserver 8000

在网页中输入http://localhost:8000/book/,输出的内容如下:
这里写图片描述
这表明我们增加记录成功,并且也正确地在web页面显示了!!!
最后,我们再去MySQL中查看:
这里写图片描述
这样我们就完成了用views.py操作MySQL啦~~
当然,更多的内容大家可以参考Django的官方文档哦~~
本次分享到此结束,欢迎大家交流~~



参考文献:
1.Python 快速教程(Django02):庄园疑云: http://python.jobbole.com/82786/
2.Django 模型(数据库): https://code.ziqiangxuetang.com/django/django-models.html
3.Django官方文档: https://docs.djangoproject.com/en/2.0/
4.Django详解之models操作: http://www.mamicode.com/info-detail-1504351.html
5.Django_中文教程.pdf: http://download.csdn.net/download/huangzhichang13/8177581

相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
2月前
|
前端开发 JavaScript BI
Django教程第5章 | Web开发实战-数据统计图表(echarts、highchart)
使用echarts和highcharts图表库实现折线图、柱状图、饼图和数据集图
64 2
|
6月前
|
监控 关系型数据库 Linux
Python采集linux服务器数据在Django Web界面展示
Python采集linux服务器数据在Django Web界面展示
|
7月前
|
存储 缓存 数据库
Django框架学习(四)
Django框架学习(四)
|
7月前
|
前端开发 关系型数据库 MySQL
Django框架学习(三)
Django框架学习(三)
|
7月前
|
JSON 前端开发 数据库
Django框架学习(一)
Django框架学习(一)
|
1月前
|
测试技术 数据库 数据安全/隐私保护
实现Django Models的数据mock
实现Django Models的数据mock
25 0
|
3月前
|
JSON 数据可视化 前端开发
ssj兼职数据Django+pyecharts可视化展示
ssj兼职数据Django+pyecharts可视化展示
25 2
|
4月前
|
调度 Apache 数据库
Django 学习教程-第一个 Django 应用
本章主要讲述了如何创建一个Django项目,以一个投票案例程序介绍了Django的请求和响应流程。
51 1
|
4月前
|
Python
Django 学习教程-介绍与安装
本章介绍了Django是什么,以及为什么使用Django和安装Django
40 1
Django 学习教程-介绍与安装
|
5月前
|
前端开发 数据库 网络架构
Python Django框架中文教程:学习简单、灵活、高效的Web应用程序框架
Python Django框架中文教程:学习简单、灵活、高效的Web应用程序框架