django 连接数据库 sqlite的例子


Posted in Python onAugust 14, 2019

Aphorism

the fight is worth it.

django models 连接 sqlite 数据库

django 版本为 1.11.7

在 blog 项目下创建一个 app article :python manage.py startapp article

在 blog 项目结构下会多出一个 article 目录

在 article 下面的 models.py 文件中输入

from django.db import models
  class Article(models.Model):
   name = models.CharField('名称',max_length = 30)
   age = models.CharFiels('年龄',max_length = 5)
   class Meta:
    db_table = 'Article'

step4: 在 子blog 目录中 修改 setting.py 文件

- 要连接到哪种数据库 : sqlite ? mysql?
- 连接的数据库路径

下面这种配置表示:

1. sqlite 数据库 和 在项目根目录下 创建一个 article.db 数据库文件

2. 数据库的类型 以及 数据库的存储位置

DATABASES = {
  'default': {
   'ENGINE': 'django.db.backends.sqlite3',
   'NAME': os.path.join(BASE_DIR, 'article.db'),
  }
 }

step5: 执行 python manage.py makemigrations

改动了 model.py的内容之后执行下面的命令:python manger.py makemigrations相当于 在该app下建立 migrations目录,并记录下你所有的关于modes.py的改动,比如0001_initial.py, 但是这个改动还没有作用到数据库文件

cmd 中会显示

Migrations for 'article':
 article\migrations\0001_initial.py
 - Create model Article

step6: 执行 python manage.py migrate

在第5步之后执行命令 将该models.py改动 作用到数据库文件,说明 /blog/article数据库文件已经被改变了,生成表格或者操作了数据

cmd 中 显示:

(blog) C:\Users\by\Desktop\review\python\blog\blog>python manage.py migrate
Operations to perform:
 Apply all migrations: admin, article, articles, auth, contenttypes, sessions
Running migrations:
 Applying contenttypes.0001_initial... OK
 Applying auth.0001_initial... OK
 Applying admin.0001_initial... OK
 Applying admin.0002_logentry_remove_auto_add... OK
 Applying article.0001_initial... OK
 Applying articles.0001_initial... OK
 Applying contenttypes.0002_remove_content_type_name... OK
 Applying auth.0002_alter_permission_name_max_length... OK
 Applying auth.0003_alter_user_email_max_length... OK
 Applying auth.0004_alter_user_username_opts... OK
 Applying auth.0005_alter_user_last_login_null... OK
 Applying auth.0006_require_contenttypes_0002... OK
 Applying auth.0007_alter_validators_add_error_messages... OK
 Applying auth.0008_alter_user_username_max_length... OK
 Applying sessions.0001_initial... OK

step7: 执行 python manage.py sqlmigrate app_name 0001

这个命令用于查看 生成的 sql语句, 这个命令相当于之前 django 版本中的 sqlall

cmd 中显示:

(blog) C:\Users\by\Desktop\review\python\blog\blog>python manage.py sqlmigrate article 0001
BEGIN;
--
-- Create model Article
--
CREATE TABLE "Article" ("id" integer NOT NULL PRIMARY KEY AUTOINCREMENT, "name" varchar(30) NOT NULL, "age" varchar(5) NOT NULL);
COMMIT;

step8: 执行命令 python manage.py dbshell

可以看看数据中是否生成了对应的表,显然本例子中 Article 生成,Articles 是我之前启动的另一个 app

或者 sqlite3 article.db 然后 .tables也可以查看

cmd 中

(blog) C:\Users\by\Desktop\review\python\blog\blog>python manage.py dbshell
SQLite version 3.7.15.2 2013-01-09 11:53:05
Enter ".help" for instructions
Enter SQL statements terminated with a ";"
sqlite> .tables
Article      auth_user_groups
Articles     auth_user_user_permissions
auth_group     django_admin_log
auth_group_permissions  django_content_type
auth_permission    django_migrations
auth_user

使用 python shell insert 数据到 article.db 中

execute python manage.py shell 进入项目的 python 命令执行环境中

使用python 语法往数据库 insert 数据

>>> from article.models import Article

## 等价写法: from articles import models.Article 


>>> Article.objects.create(name='tom',age='12')
<Article: Article object>
>>> Article.objects.create(name='juice',age='13')
<Article: Article object>

查看article.db 数据库:

sqlite article.db
select * from article
sqlite> select * from Article
 ...> ;
1|tom|12
2|juice|13
sqlite>

以上这篇django 连接数据库 sqlite的例子就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python根据经纬度计算距离示例
Feb 16 Python
Python Trie树实现字典排序
Mar 28 Python
python 2.6.6升级到python 2.7.x版本的方法
Oct 09 Python
python实现字符串连接的三种方法及其效率、适用场景详解
Jan 13 Python
python读写json文件的简单实现
Apr 11 Python
Python更新数据库脚本两种方法及对比介绍
Jul 27 Python
PyTorch读取Cifar数据集并显示图片的实例讲解
Jul 27 Python
Django 实现admin后台显示图片缩略图的例子
Jul 28 Python
详解Python 实现 ZeroMQ 的三种基本工作模式
Mar 24 Python
keras 回调函数Callbacks 断点ModelCheckpoint教程
Jun 18 Python
python字典key不能是可以是啥类型
Aug 04 Python
Python中的流程控制详解
Feb 18 Python
Python将主机名转换为IP地址的方法
Aug 14 #Python
Python利用WMI实现ping命令的例子
Aug 14 #Python
使用Windows批处理和WMI设置Python的环境变量方法
Aug 14 #Python
python for循环remove同一个list过程解析
Aug 14 #Python
如何用Python来理一理红楼梦里的那些关系
Aug 14 #Python
django之自定义软删除Model的方法
Aug 14 #Python
python实现登录密码重置简易操作代码
Aug 14 #Python
You might like
用header 发送cookie的php代码
2007/03/16 PHP
php在线生成ico文件的代码
2007/10/09 PHP
php url地址栏传中文乱码解决方法集合
2010/06/25 PHP
php中突破基于HTTP_REFERER的防盗链措施(stream_context_create)
2011/03/29 PHP
PHP的preg_match匹配字符串长度问题解决方法
2014/05/03 PHP
PHP封装CURL扩展类实例
2015/07/28 PHP
HTML颜色选择器实现代码
2010/11/23 Javascript
JS在textarea光标处插入文本的小例子
2013/03/22 Javascript
jquery获取div距离窗口和父级dv的距离示例
2013/10/10 Javascript
js获取对象、数组的实际长度,元素实际个数的实现代码
2016/06/08 Javascript
BootStrap glyphicon图标无法显示的解决方法
2016/09/06 Javascript
详解使用JS如何制作简单的ASCII图与单极图
2017/03/31 Javascript
Nodejs 和Session 原理及实战技巧小结
2017/08/25 NodeJs
详解webpack编译多页面vue项目的配置问题
2017/12/11 Javascript
Angular 封装并发布组件的方法示例
2018/04/19 Javascript
JavaScript设计模式之缓存代理模式原理与简单用法示例
2018/08/07 Javascript
Vue切换组件实现返回后不重置数据,保留历史设置操作
2020/07/21 Javascript
javascript实现数字时钟效果
2021/02/06 Javascript
[43:35]EG vs Winstrike 2018国际邀请赛小组赛BO2 第一场 8.18
2018/08/19 DOTA
布同 统计英文单词的个数的python代码
2011/03/13 Python
Python for Informatics 第11章之正则表达式(四)
2016/04/21 Python
Python遍历目录并批量更换文件名和目录名的方法
2016/09/19 Python
解决pyqt中ui编译成窗体.py中文乱码的问题
2016/12/23 Python
Python双精度浮点数运算并分行显示操作示例
2017/07/21 Python
Python字符串、整数、和浮点型数相互转换实例
2018/08/04 Python
Python 从一个文件中调用另一个文件的类方法
2019/01/10 Python
python语言中有算法吗
2020/06/16 Python
Scrapy爬虫文件批量运行的实现
2020/09/30 Python
关于前端上传文件全面基础扫盲贴(入门)
2019/08/01 HTML / CSS
Nordgreen手表德国官方网站:丹麦极简主义手表
2019/10/31 全球购物
英国设计师珠宝网站:Joshua James Jewellery
2020/03/01 全球购物
好家长事迹材料
2014/01/23 职场文书
教师个人自我评价
2015/03/04 职场文书
如何做好员工培训计划?
2019/07/09 职场文书
CSS3新特性详解(五):多列columns column-count和flex布局
2021/04/30 HTML / CSS
Python OpenCV实现图像模板匹配详解
2022/04/07 Python