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编程中time模块的使用
Nov 20 Python
详解常用查找数据结构及算法(Python实现)
Dec 09 Python
[原创]Python入门教程4. 元组基本操作
Oct 31 Python
在python中利用KNN实现对iris进行分类的方法
Dec 11 Python
pandas 数据索引与选取的实现方法
Jun 21 Python
python实现最小二乘法线性拟合
Jul 19 Python
Django 请求Request的具体使用方法
Nov 11 Python
python实现学生成绩测评系统
Jun 22 Python
python3爬虫中异步协程的用法
Jul 10 Python
python 调用API接口 获取和解析 Json数据
Sep 28 Python
python中字典增加和删除使用方法
Sep 30 Python
OpenCV实现常见的四种图像几何变换
Apr 01 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/03 冲泡冲煮
自己动手做一个SQL解释器
2006/10/09 PHP
利用php+mcDropdown实现文件路径可在下拉框选择
2013/08/07 PHP
Codeigniter整合Tank Auth权限类库详解
2014/06/12 PHP
8个PHP数组面试题
2015/06/23 PHP
ECMAScript 基础知识
2007/06/29 Javascript
jquery的extend和fn.extend的使用说明
2011/01/09 Javascript
jquery 年会抽奖程序
2011/12/22 Javascript
js控制web打印(局部打印)方法整理
2013/05/29 Javascript
jquery datepicker参数介绍和示例
2014/04/15 Javascript
node.js中的http.response.setHeader方法使用说明
2014/12/14 Javascript
jQuery实现带滚动线条导航效果的方法
2015/01/30 Javascript
静态页面html中跳转传值的JS处理技巧
2016/06/22 Javascript
原生js实现中奖信息无间隙滚动效果
2017/01/18 Javascript
jQuery学习之DOM节点的插入方法总结
2017/01/22 Javascript
Angular.js指令学习中一些重要属性的用法教程
2017/05/24 Javascript
jquery获取链接地址和跳转详解(推荐)
2017/08/15 jQuery
JavaScript实现移动端页面按手机屏幕分辨率自动缩放的最强代码
2017/08/18 Javascript
讲解vue-router之什么是动态路由
2018/05/28 Javascript
React 组件渲染和更新的实现代码示例
2019/02/21 Javascript
vue实现路由切换改变title功能
2019/05/28 Javascript
js实现简单的秒表
2020/01/16 Javascript
解决antd 下拉框 input [defaultValue] 的值的问题
2020/10/31 Javascript
Python编程入门的一些基本知识
2015/05/13 Python
python实现人脸签到系统
2020/04/13 Python
python三引号如何输入
2020/07/06 Python
上海奥佳笔试题面试题
2016/11/16 面试题
十岁生日父母答谢词
2014/01/18 职场文书
高中生期末评语
2014/01/28 职场文书
法学专业自我鉴定
2014/02/05 职场文书
航空学院求职信
2014/06/11 职场文书
合作协议书模板2014
2014/09/26 职场文书
司法工作人员群众路线对照检查材料思想汇报
2014/09/30 职场文书
2014光棍节单身联谊活动策划书
2014/10/10 职场文书
详解MindSpore自定义模型损失函数
2021/06/30 Python
Django路由层如何获取正确的url
2021/07/15 Python