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中列表和元祖的使用方法
Apr 25 Python
在Linux系统上部署Apache+Python+Django+MySQL环境
Dec 24 Python
python安装教程 Pycharm安装详细教程
May 02 Python
Python实现随机选择元素功能
Sep 14 Python
python中import reload __import__的区别详解
Oct 16 Python
使用pycharm在本地开发并实时同步到服务器
Aug 02 Python
Python数组并集交集补集代码实例
Feb 18 Python
浅谈pytorch torch.backends.cudnn设置作用
Feb 20 Python
python如何遍历指定路径下所有文件(按按照时间区间检索)
Sep 14 Python
基于Python模拟浏览器发送http请求
Nov 06 Python
python随机打印成绩排名表
Jun 23 Python
为了顺利买到演唱会的票用Python制作了自动抢票的脚本
Oct 16 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
sourcesafe管理phpproj文件的补充说明(downmoon)
2009/04/11 PHP
php面向对象中的魔术方法中文说明
2014/03/04 PHP
PHP中OpenSSL加密问题整理
2017/12/14 PHP
Thinkphp5框架中引入Markdown编辑器操作示例
2020/06/03 PHP
深入理解javascript学习笔记(一) 编写高质量代码
2012/08/09 Javascript
JavaScript的原型继承详解
2015/02/15 Javascript
JavaScript生成随机数的4种自定义函数分享
2015/02/28 Javascript
如何动态加载外部Javascript文件
2015/12/02 Javascript
js原生之焦点图转换加定时器实例
2016/12/12 Javascript
基于cookie实现zTree树刷新后展开状态不变
2017/02/28 Javascript
jQuery的$.extend 浅拷贝与深拷贝
2017/03/08 Javascript
详解vue-router 2.0 常用基础知识点之导航钩子
2017/05/10 Javascript
addeventlistener监听scroll跟touch(实例讲解)
2017/08/04 Javascript
js实现点击展开隐藏效果(实例代码)
2018/09/28 Javascript
聊聊Vue 中 title 的动态修改问题
2019/06/11 Javascript
JS获取当前时间的年月日时分秒及时间的格式化的方法
2019/12/18 Javascript
JS window对象简单操作完整示例
2020/01/14 Javascript
JS自定义右键菜单实现代码解析
2020/07/16 Javascript
[46:32]Fnatic vs OG 2018国际邀请赛小组赛BO2 第一场 8.18
2018/08/19 DOTA
[35:34]Liquid vs Winstrike 2018国际邀请赛小组赛BO2 第一场 8.18
2018/08/19 DOTA
Python sklearn KFold 生成交叉验证数据集的方法
2018/12/11 Python
Python中文件的写入读取以及附加文字方法
2019/01/23 Python
python获取交互式ssh shell的方法
2019/02/14 Python
python字符串中匹配数字的正则表达式
2019/07/03 Python
详解Python二维数组与三维数组切片的方法
2019/07/18 Python
使用Python三角函数公式计算三角形的夹角案例
2020/04/15 Python
Django CBV模型源码运行流程详解
2020/08/17 Python
大唐电信科技股份有限公司java工程师面试经历
2016/12/09 面试题
涉外经济法专业毕业生推荐信
2013/11/24 职场文书
孝老爱亲模范事迹材料
2014/05/25 职场文书
校园广播稿精选
2014/10/01 职场文书
师德标兵事迹材料
2014/12/19 职场文书
2014年底个人工作总结
2015/03/10 职场文书
2015年班组工作总结
2015/04/20 职场文书
2015入党自传书范文
2015/06/26 职场文书
导游词之无锡丝业博物馆
2019/11/12 职场文书