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 相关文章推荐
SQLite3中文编码 Python的实现
Jan 11 Python
python如何获取服务器硬件信息
May 11 Python
Python多线程threading和multiprocessing模块实例解析
Jan 29 Python
Python编程flask使用页面模版的方法
Dec 28 Python
Python generator生成器和yield表达式详解
Aug 08 Python
django基于restframework的CBV封装详解
Aug 08 Python
python 实现return返回多个值
Nov 19 Python
Django实现将views.py中的数据传递到前端html页面,并展示
Mar 16 Python
Python super()方法原理详解
Mar 31 Python
Django静态文件加载失败解决方案
Aug 26 Python
详解python程序中的多任务
Sep 16 Python
基于PyQt5制作一个群发邮件工具
Apr 08 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
第一个无线电台是由谁发明的
2021/03/01 无线电
PHP文件上传原理简单分析
2011/05/29 PHP
给大家分享几个常用的PHP函数
2017/01/15 PHP
PHP中phar包的使用教程
2017/06/14 PHP
源码分析 Laravel 重复执行同一个队列任务的原因
2017/12/25 PHP
php+ajax实现商品对比功能示例
2019/04/13 PHP
phpinfo的知识点总结
2019/10/10 PHP
学习ExtJS border布局
2009/10/08 Javascript
jQuery处理图片加载失败的常用方法
2015/06/08 Javascript
jQuery往返城市和日期查询实例讲解
2015/10/09 Javascript
js正则表达式验证邮件地址
2015/11/12 Javascript
javascript:void(0)是什么意思及href=#与href=javascriptvoid(0)的区别
2015/11/13 Javascript
JQuery 在文档中查找指定name的元素并移除的实现方法
2016/05/19 Javascript
详解JavaScript常量定义
2017/01/03 Javascript
拖动时防止选中
2017/02/03 Javascript
原生js开发的日历插件
2017/02/04 Javascript
微信小程序 图片上传实例详解
2017/05/05 Javascript
浅谈layui分页控件field参数接收对象的问题
2019/09/20 Javascript
python局部赋值的规则
2013/03/07 Python
Python实现删除文件但保留指定文件
2015/06/21 Python
通过Python使用saltstack生成服务器资产清单
2016/03/01 Python
Python实现复杂对象转JSON的方法示例
2017/06/22 Python
R vs. Python 数据分析中谁与争锋?
2017/10/18 Python
python写入并获取剪切板内容的实例
2018/05/31 Python
Python基于SMTP协议实现发送邮件功能详解
2018/08/14 Python
Python使用lambda表达式对字典排序操作示例
2019/07/25 Python
Python闭包与装饰器原理及实例解析
2020/04/30 Python
Pycharm自动添加文件头注释和函数注释参数的方法
2020/10/23 Python
HTML5地理定位与第三方工具百度地图的应用
2016/11/17 HTML / CSS
美国领先的礼品卡网站:GiftCards.com
2016/11/02 全球购物
英国袜子店:Sock Shop
2017/01/11 全球购物
英国体育器材进口商店:UK Sport Imports
2017/03/14 全球购物
屈臣氏俄罗斯在线商店:Watsons俄罗斯
2020/08/03 全球购物
学术研讨会欢迎词
2015/01/26 职场文书
2015年团委副书记工作总结
2015/07/23 职场文书
党员干部学习十八届五中全会精神心得体会
2016/01/05 职场文书