Django学习(2)数据宝库
来源:互联网 发布:域名有啥用 编辑:程序博客网 时间:2024/05/16 07:26
数据库是一所大宝库,藏着各种宝贝。一个没有数据库的网站,功能有限。在Django中,支持的数据库有以下四种:
- SQLite3
- MySQL
- PostgreSQL
- Oracle
其中SQLite3为Django自带数据库,无需安装。Django要求MySQL4.0或更高的版本。
本文将介绍如何在Django中连接并操作MySQL.请确保你的系统里已安装MySQL以及Python模块pymysql.
首先新建项目Book,并在Book项目中新建应用books:
django-admin.py startproject Bookcd ./Bookdjango-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 modelsclass 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 MYBOOKIn [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 renderfrom books.models import MYBOOKfrom django.http import HttpResponsedef 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
- Django学习(2)数据宝库
- 疯狂Java学习笔记(46)------------知识学习宝库!
- Java学习笔记(46)------------知识学习宝库!
- 随想录(从开源的宝库中学习)
- Django 学习 2 MODEL数据建模
- 大学,学习资源的宝库
- django上传数据(2)
- Django 学习笔记(2)
- 从开源的宝库中学习
- Django 开发学习笔记(5)- 关于数据 ORM第 2 讲
- Django 开发学习笔记(4)- 关于数据 ORM
- 程序员网站资源宝库(转贴)
- 程序员网站资源宝库(转贴)
- 程序员网站资源宝库(转贴)
- Django 学习笔记(2)
- Django学习笔记2
- Django基础学习<2>
- Django学习笔记2
- 冒泡排序与选择排序
- Tomcat服务器集群与负载均衡实现
- FatFs STM32
- 学习体会
- Solr查询
- Django学习(2)数据宝库
- 【】mysql结算批量处理的优化
- 【Scikit-Learn 中文文档】四十:数据集加载工具
- 在mysql中事务的特殊说明:
- WordPress空间靠谱国内外一览
- centos6.5安装python2.7
- Hi3531与Hi3520 GPIO口的对比及驱动的修改
- nodejs学习
- Xfce Desktop Environment