系统城装机大师 - 固镇县祥瑞电脑科技销售部宣传站!

当前位置:首页 > 数据库 > SQLite > 详细页面

django 连接数据库 sqlite的例子

时间:2019-12-04来源:系统城作者:电脑系统城

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 文件中输入


 
  1. from django.db import models
  2. class Article(models.Model):
  3. name = models.CharField('名称',max_length = 30)
  4. age = models.CharFiels('年龄',max_length = 5)
  5. class Meta:
  6. db_table = 'Article'

step4: 在 子blog 目录中 修改 setting.py 文件


 
  1. - 要连接到哪种数据库 : sqlite ? mysql?
  2. - 连接的数据库路径

下面这种配置表示:

1. sqlite 数据库 和 在项目根目录下 创建一个 article.db 数据库文件

2. 数据库的类型 以及 数据库的存储位置


 
  1. DATABASES = {
  2. 'default': {
  3. 'ENGINE': 'django.db.backends.sqlite3',
  4. 'NAME': os.path.join(BASE_DIR, 'article.db'),
  5. }
  6. }

step5: 执行 python manage.py makemigrations

改动了 model.py的内容之后执行下面的命令:python manger.py makemigrations相当于 在该app下建立 migrations目录,并记录下你所有的关于modes.py的改动,比如0001_initial.py, 但是这个改动还没有作用到数据库文件

cmd 中会显示


 
  1. Migrations for 'article':
  2. article\migrations\0001_initial.py
  3. - Create model Article

step6: 执行 python manage.py migrate

在第5步之后执行命令 将该models.py改动 作用到数据库文件,说明 /blog/article数据库文件已经被改变了,生成表格或者操作了数据

cmd 中 显示:


 
  1. (blog) C:\Users\by\Desktop\review\python\blog\blog>python manage.py migrate
  2. Operations to perform:
  3. Apply all migrations: admin, article, articles, auth, contenttypes, sessions
  4. Running migrations:
  5. Applying contenttypes.0001_initial... OK
  6. Applying auth.0001_initial... OK
  7. Applying admin.0001_initial... OK
  8. Applying admin.0002_logentry_remove_auto_add... OK
  9. Applying article.0001_initial... OK
  10. Applying articles.0001_initial... OK
  11. Applying contenttypes.0002_remove_content_type_name... OK
  12. Applying auth.0002_alter_permission_name_max_length... OK
  13. Applying auth.0003_alter_user_email_max_length... OK
  14. Applying auth.0004_alter_user_username_opts... OK
  15. Applying auth.0005_alter_user_last_login_null... OK
  16. Applying auth.0006_require_contenttypes_0002... OK
  17. Applying auth.0007_alter_validators_add_error_messages... OK
  18. Applying auth.0008_alter_user_username_max_length... OK
  19. Applying sessions.0001_initial... OK

step7: 执行 python manage.py sqlmigrate app_name 0001

这个命令用于查看 生成的 sql语句, 这个命令相当于之前 django 版本中的 sqlall

cmd 中显示:


 
  1. (blog) C:\Users\by\Desktop\review\python\blog\blog>python manage.py sqlmigrate article 0001
  2. BEGIN;
  3. --
  4. -- Create model Article
  5. --
  6. CREATE TABLE "Article" ("id" integer NOT NULL PRIMARY KEY AUTOINCREMENT, "name"varchar(30) NOT NULL, "age" varchar(5) NOT NULL);
  7. COMMIT;

step8: 执行命令 python manage.py dbshell

可以看看数据中是否生成了对应的表,显然本例子中 Article 生成,Articles 是我之前启动的另一个 app

或者 sqlite3 article.db 然后 .tables也可以查看

cmd 中


 
  1. (blog) C:\Users\by\Desktop\review\python\blog\blog>python manage.py dbshell
  2. SQLite version 3.7.15.2 2013-01-09 11:53:05
  3. Enter ".help" for instructions
  4. Enter SQL statements terminated with a ";"
  5. sqlite> .tables
  6. Article auth_user_groups
  7. Articles auth_user_user_permissions
  8. auth_group django_admin_log
  9. auth_group_permissions django_content_type
  10. auth_permission django_migrations
  11. auth_user

使用 python shell insert 数据到 article.db 中

execute python manage.py shell 进入项目的 python 命令执行环境中

使用python 语法往数据库 insert 数据


 
  1. >>> from article.models import Article
  2.  
  3. ## 等价写法: from articles import models.Article
  4.  
  5.  
  6. >>> Article.objects.create(name='tom',age='12')
  7. <Article: Article object>
  8. >>> Article.objects.create(name='juice',age='13')
  9. <Article: Article object>

查看article.db 数据库:


 
  1. sqlite article.db
  2. select * from article
  3. sqlite> select * from Article
  4. ...> ;
  5. 1|tom|12
  6. 2|juice|13
  7. sqlite>
  8.  

以上这篇django 连接数据库 sqlite的例子就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们。

分享到:

相关信息

系统教程栏目

栏目热门教程

人气教程排行

站长推荐

热门系统下载