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的Flask框架来构建一个简单的数字商品支付解决方案
Mar 31 Python
python数据类型_字符串常用操作(详解)
May 30 Python
Python网络爬虫中的同步与异步示例详解
Feb 03 Python
分析Python读取文件时的路径问题
Feb 11 Python
python指定写入文件时的编码格式方法
Jun 07 Python
Python基于多线程实现抓取数据存入数据库的方法
Jun 22 Python
Python3将数据保存为txt文件的方法
Sep 12 Python
python实现七段数码管和倒计时效果
Nov 23 Python
使用python+poco+夜神模拟器进行自动化测试实例
Apr 23 Python
Python Switch Case三种实现方法代码实例
Jun 18 Python
python如何利用cv2模块读取显示保存图片
Jun 04 Python
python缺失值的解决方法总结
Jun 09 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
php4的session功能评述(三)
2006/10/09 PHP
php addslashes和mysql_real_escape_string
2010/01/24 PHP
Windows下XDebug 手工配置与使用说明
2010/07/11 PHP
PHP导出MySQL数据到Excel文件(fputcsv)
2011/07/03 PHP
浅析php中常量,变量的作用域和生存周期
2013/08/10 PHP
PHP7之Mongodb API使用详解
2015/12/26 PHP
Yii净化器CHtmlPurifier用法示例(过滤不良代码)
2016/07/15 PHP
老生常谈文本文件和二进制文件的区别
2017/02/27 PHP
利用phpexcel对数据库数据的导入excel(excel筛选)、导出excel
2017/04/27 PHP
用AJAX返回HTML片段中的JavaScript脚本
2010/01/04 Javascript
jQuery 点击图片跳转上一张或下一张功能的实现代码
2010/03/12 Javascript
jQuery当鼠标悬停时放大图片的效果实例
2013/07/03 Javascript
js左侧三级菜单导航实例代码
2013/09/13 Javascript
超详细的javascript数组方法汇总
2015/11/21 Javascript
Bootstrap源码解读网格系统(3)
2016/12/22 Javascript
微信小程序 生命周期和页面的生命周期详细介绍
2017/01/19 Javascript
Node.js 中exports 和 module.exports 的区别
2017/03/14 Javascript
微信小程序实现移动端滑动分页效果(ajax)
2017/06/13 Javascript
BootStrap Select清除选中的状态恢复默认状态
2017/06/20 Javascript
vue仿ios列表左划删除
2019/09/26 Javascript
JavaScript enum枚举类型定义及使用方法
2020/05/15 Javascript
python基础教程之获取本机ip数据包示例
2014/02/10 Python
Python ORM框架SQLAlchemy学习笔记之映射类使用实例和Session会话介绍
2014/06/10 Python
TensorFlow实现MLP多层感知机模型
2018/03/09 Python
Django MEDIA的配置及用法详解
2019/07/25 Python
Python谱减法语音降噪实例
2019/12/18 Python
python3中关于excel追加写入格式被覆盖问题(实例代码)
2020/01/10 Python
Python BeautifulReport可视化报告代码实例
2020/04/13 Python
Python tkinter制作单机五子棋游戏
2020/09/14 Python
详解Python中Pyyaml模块的使用
2020/10/08 Python
Fossil美国官网:Fossil手表、手袋、珠宝及配件
2017/02/01 全球购物
几个常见的软件测试问题
2016/09/07 面试题
期终自我鉴定
2014/02/17 职场文书
建筑施工安全责任书
2014/07/24 职场文书
2015年班级工作总结范文
2015/04/03 职场文书
mybatis3中@SelectProvider传递参数方式
2021/08/04 Java/Android