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设置检查点简单实现代码
Jul 01 Python
一些Python中的二维数组的操作方法
May 02 Python
用tensorflow实现弹性网络回归算法
Jan 09 Python
python列表生成式与列表生成器的使用
Feb 23 Python
Python使用win32 COM实现Excel的写入与保存功能示例
May 03 Python
python实现人像动漫化的示例代码
May 17 Python
tensorflow 2.1.0 安装与实战教程(CASIA FACE v5)
Jun 30 Python
Python利用Faiss库实现ANN近邻搜索的方法详解
Aug 03 Python
Python实现播放和录制声音的功能
Aug 12 Python
python基于exchange函数发送邮件过程详解
Nov 06 Python
python+appium+yaml移动端自动化测试框架实现详解
Nov 24 Python
理解python中装饰器的作用
Jul 21 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
php中将html中的br换行符转换为文本输入中的换行符
2013/03/26 PHP
解析PHP中的内存管理,PHP动态分配和释放内存
2013/06/28 PHP
CodeIgniter中实现泛域名解析
2014/07/19 PHP
动手学习无线电
2021/03/10 无线电
让网页跳转到指定位置的jquery代码非书签
2013/09/06 Javascript
javascript获取checkbox复选框获取选中的选项
2014/08/12 Javascript
js实现的后台左侧管理菜单代码
2015/09/11 Javascript
利用jquery制作滚动到指定位置触发动画
2016/03/26 Javascript
JS控制静态页面之间传递参数获取参数并应用的简单实例
2016/08/10 Javascript
利用BootStrap弹出二级对话框的简单实现方法
2016/09/21 Javascript
JavaScript之filter_动力节点Java学院整理
2017/06/28 Javascript
Javascript中Promise的四种常用方法总结
2017/07/14 Javascript
详解webpack+express多页站点开发
2017/12/22 Javascript
在vue里面设置全局变量或数据的方法
2018/03/09 Javascript
vue.js实现的经典计算器/科学计算器功能示例
2018/07/11 Javascript
JavaScript选择排序算法原理与实现方法示例
2018/08/06 Javascript
JQueryDOM之样式操作
2019/03/27 jQuery
vue实现输入框的模糊查询的示例代码(节流函数的应用场景)
2019/09/01 Javascript
zbar解码二维码和条形码示例
2014/02/07 Python
轻量级的Web框架Flask 中模块化应用的实现
2017/09/11 Python
解决出现Incorrect integer value: '' for column 'id' at row 1的问题
2017/10/29 Python
python+matplotlib绘制3D条形图实例代码
2018/01/17 Python
获取python文件扩展名和文件名方法
2018/02/02 Python
python实现zabbix发送短信脚本
2018/09/17 Python
基于python监控程序是否关闭
2020/01/14 Python
python dict乱码如何解决
2020/06/07 Python
详解如何在pyqt中通过OpenCV实现对窗口的透视变换
2020/09/20 Python
html5跳转小程序wx-open-launch-weapp踩坑
2020/12/02 HTML / CSS
Speedo速比涛德国官方网站:世界领先的泳装品牌
2019/08/26 全球购物
幼儿园运动会加油词
2014/02/14 职场文书
求职信内容怎么写
2014/05/26 职场文书
初中国旗下的演讲稿
2014/08/28 职场文书
2015年度质量工作总结报告
2015/04/27 职场文书
使用numpy nonzero 找出非0元素
2021/05/14 Python
关于flex 上下文中自动 margin的问题(完整例子)
2021/05/20 HTML / CSS
MySQL外键约束(FOREIGN KEY)案例讲解
2021/08/23 MySQL