美文网首页
django框架使用-生成数据库表

django框架使用-生成数据库表

作者: 行如风 | 来源:发表于2017-10-19 17:11 被阅读606次

    前言

    本篇简单介绍django中对数据库的操作.

    create数据库表

    上一篇中使用python manage.py runserver 8000运行django项目, 虽然项目成功运行, 但发现终端中有一些警告信息.
    这些警告信息表示此项目有数据库结构的设计但是没有应用到数据库中.
    下面先介绍两个命令.

    python manage.py makemigrations
    python manage.py migrate
    

    控制台中分别执行这两行命令
    控制台输出如下

    bogon:HelloWorld zhaodan$ ls
    HelloWorld      db.sqlite3      manage.py       mytest
    bogon:HelloWorld zhaodan$ python manage.py makemigrations
    No changes detected
    bogon:HelloWorld zhaodan$ python manage.py migrate
    Operations to perform:
      Apply all migrations: admin, auth, sessions, contenttypes
    Running migrations:
      Rendering model states... DONE
      Applying contenttypes.0001_initial... OK
      Applying auth.0001_initial... OK
      Applying admin.0001_initial... OK
      Applying admin.0002_logentry_remove_auto_add... 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 sessions.0001_initial... OK
    bogon:HelloWorld zhaodan$ open .
    
    

    打开sqlite数据库文件所在目录

    sqlitedir.png

    与iOS开发中一模一样的sqlite数据库文件..., 使用工具打开数据库文件.我使用的工具叫做 SQLite Professional,

    sqlite0.png

    能够看到已经有了很多表.

    我们一行代码都没有写, 这些这些表是从哪里来的?

    上面的两行命令

    python manage.py makemigrations
    python manage.py migrate
    

    是用来根据数据库定义的代码生成数据库定义语句并执行的.
    python manage.py makemigrations 会检查数据库定义的代码是否正确.

    django为我们提供了一套用户系统. 包含user, usergroup, permissions等常用部分.

    这些表的代码来自这里.

    auth0.png auth1.png

    仿照auth.models文件的内容 创建一个新表

    user0.png

    修改settings.py 文件
    INSTALLED_APPS中添加mytest模块

    INSTALLED_APPS = [
        'django.contrib.admin',
        'django.contrib.auth',
        'django.contrib.contenttypes',
        'django.contrib.sessions',
        'django.contrib.messages',
        'django.contrib.staticfiles',
        'mytest'
    ]
    

    运行

    python manage.py makemigrations
    python manage.py migrate
    

    最终效果

    user1.png

    以后会介绍具体如何编写models.py文件中的各个表, 编写时有哪些注意事项, models.py 文件被映射到数据库后, 还能修改已经被映射过的字段吗?

    相关文章

      网友评论

          本文标题:django框架使用-生成数据库表

          本文链接:https://www.haomeiwen.com/subject/yiqpuxtx.html