django 连接数据库 sqlite

Aphorism

the fight is worth it.

django models 连接 sqlite 数据库

django 版本为 1.11.7

  1. 在 blog 项目下创建一个 app article :python manage.py startapp article

  2. 在 blog 项目结构下会多出一个 article 目录

  3. 在 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 中

  1. execute python manage.py shell 进入项目的 python 命令执行环境中
  2. 使用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>
  3. 查看article.db 数据库:

    • sqlite article.db
    • select * from article
sqlite> select * from Article
   ...> ;
1|tom|12
2|juice|13
sqlite>
  • 1
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值