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中用get()方法获取字典键值的教程
May 21 Python
在Django的通用视图中处理Context的方法
Jul 21 Python
浅谈pyhton学习中出现的各种问题(新手必看)
May 17 Python
python3+PyQt5重新实现QT事件处理程序
Apr 19 Python
python安装twisted的问题解析
Aug 21 Python
自学python的建议和周期预算
Jan 30 Python
python使用thrift教程的方法示例
Mar 21 Python
使用OpenCV-python3实现滑动条更新图像的Canny边缘检测功能
Dec 12 Python
python中的django是做什么的
Jul 31 Python
Python 如何实现数据库表结构同步
Sep 29 Python
python在协程中增加任务实例操作
Feb 28 Python
Python连接Postgres/Mysql/Mongo数据库基本操作大全
Jun 29 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中常用数组处理方法实例分析
2008/08/30 PHP
ie6 动态缩略图不显示的原因
2009/06/21 PHP
什么情况下可以不写PHP的闭合标签“?&gt;”
2014/08/28 PHP
Yii实现自动加载类地图的方法
2015/04/01 PHP
redirect_uri参数错误的解决方法(必看)
2017/02/16 PHP
使用一个for循环将N*N的二维数组的所有值置1实现方法
2017/05/29 PHP
Eclipse PHPEclipse 配置的具体步骤
2017/08/08 PHP
找到一点可怜的关于dojo资料,谢谢作者!
2006/12/06 Javascript
JQuery 操作select标签实现代码
2010/05/14 Javascript
灵活应用js调试技巧解决样式问题的步骤分享
2012/03/15 Javascript
使用js获取图片原始尺寸
2014/12/03 Javascript
基于Jquery easyui 选中特定的tab
2015/11/17 Javascript
JavaScript数据推送Comet技术详解
2016/04/07 Javascript
JavaScript中自带的 reduce()方法使用示例详解
2016/08/10 Javascript
js遍历map javaScript遍历map的简单实现
2016/08/26 Javascript
基于jQuery和Bootstrap框架实现仿知乎前端动态列表效果
2016/11/09 Javascript
layui文件上传实现代码
2017/05/20 Javascript
详解nodejs微信jssdk后端接口
2017/05/25 NodeJs
深入理解Angular中的依赖注入
2017/06/26 Javascript
vue使用axios实现文件上传进度的实时更新详解
2017/12/20 Javascript
从vue源码解析Vue.set()和this.$set()
2018/08/30 Javascript
vue实现前台列表数据过滤搜索、分页效果
2019/05/28 Javascript
OpenLayers3实现图层控件功能
2020/09/25 Javascript
[36:29]2018DOTA2亚洲邀请赛 4.1 小组赛 A组加赛 LGD vs TNC
2018/04/02 DOTA
python基础教程之类class定义使用方法
2014/02/20 Python
python自定义时钟类、定时任务类
2021/02/22 Python
原来我一直安装 Python 库的姿势都不对呀
2019/11/11 Python
日本一家专门经营各种箱包的大型网站:Traveler Store
2016/08/03 全球购物
《夏夜多美》教学反思
2014/02/17 职场文书
预备党员的自我评价
2014/03/12 职场文书
三年级班级文化建设方案
2014/05/04 职场文书
基于python实现银行管理系统
2021/04/20 Python
Python基础之元编程知识总结
2021/05/23 Python
python生成可执行exe控制Microsip自动填写号码并拨打功能
2021/06/21 Python
Windows 11上手初体验:任务栏和开始菜单等迎来大改
2021/11/21 数码科技
Ruby GDBM操作简介及数据存储原理
2022/04/19 Ruby