您当前的位置: 首页 >  django

嗨学编程

暂无认证

  • 1浏览

    0关注

    1405博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

Django学习(2)数据宝库

嗨学编程 发布时间:2019-09-17 20:49:18 ,浏览量:1

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

  • SQLite3
  • MySQL
  • PostgreSQL
  • Oracle 其中SQLite3为Django自带数据库,无需安装。Django要求MySQL版本4.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]: 

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

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

In [5]: MYBOOK.objects.all()
Out[5]: [, , ]

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
'''
遇到不懂的问题?Python学习交流群:821460695满足你的需求,资料都已经上传群文件,可以自行下载!
'''
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:"
     for _ in book_list:
          string += str(_)+''

     return HttpResponse(string)

该代码前半部分用三种方式插入数据,后半部分则是为了在网页中显示。 在urls.py中增加新的url 在这里插入图片描述 启动server服务: python3 manage.py runserver 8000 在网页中输入http://localhost:8000/book/,输出的内容如下:

在这里插入图片描述 这表明我们增加记录成功,并且也正确地在web页面显示了!!! 最后,我们再去MySQL中查看: 在这里插入图片描述 这样我们就完成了用views.py操作MySQL啦~~

关注
打赏
1663681728
查看更多评论
立即登录/注册

微信扫码登录

0.1026s