Django 模型是与数据库相关的,与数据库相关的代码一般写在 models.py 中,Django 支持 sqlite3, MySQL, PostgreSQL等数据库,只需要在settings.py中配置即可,不用更改models.py中的代码,丰富的API极大的方便了使用。


创建表

我们打开 mysite/models.py 文件,修改其中的代码如下:

#coding:utf8
from django.db import models
class Userlist(models.Model):
    username = models.CharField(max_length=50)
    password = models.CharField(max_length=50)

我们新建了一个Userlist类,继承自models.Model, 一个用户清单里面有用户名和密码。这里用到了一种 Field, 更多Field类型可以参考教程最后的链接。


同步数据库

python manage.py makemigrations
Migrations for 'learn':
  0006_userlist.py:
    - Create model UserList
python manage.py migrate
Operations to perform:
  Synchronize unmigrated apps: staticfiles, messages
  Apply all migrations: admin, contenttypes, sessions, auth, learn
Synchronizing apps without migrations:
  Creating tables...
    Running deferred SQL...
  Installing custom SQL...
Running migrations:
  Rendering model states... DONE
  Applying learn.0006_userlist... OK


注册表

打开mystie/admin.py文件,修改代码:

from django.contrib import admin
from learn.models import *
# Register your models here.
class UserlistAdmin(admin.ModelAdmin):
    list_display = ['username','password']
admin.site.register(Userlist,UserlistAdmin)


访问后台管理

http://127.0.0.1:8000/admin


django使用models创建表_django


如何删除表?

1、删除mysite/models.py中的对应类

django使用models创建表_django_02 2、删除mysite/admin.py中注册的类

django使用models创建表_django_03

3、数据库同步

python manage.py makemigrations
python manage.py migrate


4、访问后台管理

django使用models创建表_删除表_04

可以看到已经没有了Userlist表了