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实现拼接多张图片的方法
Dec 01 Python
Python3写入文件常用方法实例分析
May 22 Python
Python 搭建Web站点之Web服务器网关接口
Nov 06 Python
Python写的一个定时重跑获取数据库数据
Dec 28 Python
Python学习小技巧之列表项的排序
May 20 Python
Python入门之三角函数atan2()函数详解
Nov 08 Python
Python如何发布程序的详细教程
Oct 09 Python
python实现自动化报表功能(Oracle/plsql/Excel/多线程)
Dec 02 Python
opencv-python 提取sift特征并匹配的实例
Dec 09 Python
pymysql 插入数据 转义处理方式
Mar 02 Python
Python使用cn2an实现中文数字与阿拉伯数字的相互转换
Mar 02 Python
使用Django框架创建项目
Jun 10 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
用mysql内存表来代替php session的类
2009/02/01 PHP
php写入、删除与复制文件的方法
2015/06/20 PHP
PHP根据树的前序遍历和中序遍历构造树并输出后序遍历的方法
2017/11/10 PHP
js 图片轮播(5张图片)
2008/12/30 Javascript
JQuery与Ajax常用代码实现对比
2009/10/03 Javascript
浅谈JavaScript字符集
2014/05/22 Javascript
js简单实现点击左右运动的方法
2015/04/10 Javascript
JS给Textarea文本框添加行号的方法
2015/08/20 Javascript
小程序开发实战:实现九宫格界面的导航的代码实现
2017/01/19 Javascript
解决Node.js使用MySQL出现connect ECONNREFUSED 127.0.0.1:3306的问题
2017/03/09 Javascript
mac上node.js环境的安装测试
2017/07/03 Javascript
原生js jquery ajax请求以及jsonp的调用方法
2017/08/04 jQuery
vue.js项目nginx部署教程
2018/04/05 Javascript
JS中DOM元素的attribute与property属性示例详解
2018/09/04 Javascript
详解webpack+ES6+Sass搭建多页面应用
2018/11/05 Javascript
VueCli4项目配置反向代理proxy的方法步骤
2020/05/17 Javascript
Python对文件操作知识汇总
2016/05/15 Python
django批量导入xml数据
2016/10/16 Python
详解用python实现简单的遗传算法
2018/01/02 Python
python实现多层感知器MLP(基于双月数据集)
2019/01/18 Python
python交互界面的退出方法
2019/02/16 Python
Python 实现文件读写、坐标寻址、查找替换功能
2019/09/11 Python
python3.7中安装paddleocr及paddlepaddle包的多种方法
2020/11/27 Python
德国高性价比网上药店:medpex
2017/07/09 全球购物
linux面试题参考答案(8)
2016/04/19 面试题
销售员自我评价怎么写
2013/09/19 职场文书
实习教师个人的自我评价
2013/11/08 职场文书
学校司机岗位职责
2013/11/14 职场文书
高一政治教学反思
2014/01/28 职场文书
食品工程专业求职信
2014/06/15 职场文书
领导干部个人对照检查材料(群众路线)
2014/09/26 职场文书
“六查”、“三学”、“三干”查摆问题整改措施
2014/09/27 职场文书
用基于python的appium爬取b站直播消费记录
2021/04/17 Python
使用pandas模块实现数据的标准化操作
2021/05/14 Python
Python pandas求方差和标准差的方法实例
2021/08/04 Python
python3操作redis实现List列表实例
2021/08/04 Python