Django的模型和管理站点

Django之路

创建数据库,因为一开始是默认sqlite3,在settings.py可看,如果无其他使用要求,默认就好,假如想切换数据库

 

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.sqlite3',
        'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
    }
}

# 注释settings.py中的以上代码

# 插入新代码

DATABASES = {
    "default": {
        # 连接的数据库类型
        'ENGINE': 'django.db.backends.mysql',
        # 连接数据库的地址
        "HOST": "127.0.0.1",
        # 端口
        "PORT": 3306,
        # 数据库名称
        "NAME": "django_work",
        # 用户名
        "USER": "root",
        # 密码
        "PASSWORD": "root"
    }

}
settings.py

 

  注意:数据库需要提前建立

 

 接下来去app01/models.py文件中设置表

 

from django.db import models


class Question(models.Model):
    question_text = models.CharField(max_length=200)
    pub_date = models.DateTimeField('date published')


class Choice(models.Model):
    question = models.ForeignKey(Question, on_delete=models.CASCADE)
    choice_text = models.CharField(max_length=200)
    votes = models.IntegerField(default=0)
app01/models

 

  更多的字段在未来会详细介绍

  如果设置MySql为数据库,就要在app01文件夹的init.py中输入

import pymysql

pymysql.install_as_MySQLdb()

  注册这些字段,在命令行中输入

python manage.py makemigrations


python manage.py migrate

  通过运行makemigrations,告诉Django你已对模型进行了一些更改(在这种情况下,你已经创建了新模型),并且你希望将更改存储为迁移。迁移是Django如何存储对模型(以及数据库模式)的更改 - 它们只是磁盘上的文件。如果你愿意,可以阅读新模型的迁移; 这是文件 polls/migrations/0001_initial.py。不要担心,每次Django制作它时都不会读它们,但是如果你想手动调整Django如何改变它们的话,它们的设计是人为可编辑的。有一个命令可以为你运行迁移并自动管理你的数据库模式 - 这是被调用的migrate,我们马上就会看到它,但首先,让我们看看迁移将运行的SQL。该 sqlmigrate命令获取迁移名称并返回其SQL:

python manage.py sqlmigrate app01 0001

  我们可以进入Python shell 使用Django为我们提供的免费API

python manage.py shell

  进入之后可以进行操作

from app01.models import Choice, Question  # 导入模块
Question.objects.all()    # 查询容器有什么
# <QuerySet [<Question: Question object (1)>]> # 输出
from django.utils import timezone  # 导入Django的时间模块
w=Question(question_text="hello,world",pub_date=timezone.now())# 新建一个对象 
w.save() # 保存
    

创建管理员用户

  首先,我们需要创建一个可以登录管理站点的用户。运行以下命令:

python manage.py createsuperuser

  

   进入管理员页面

   在admin.py加入代码,管理Question对象

from django.contrib import admin

# Register your models here.

from .models import Question

admin.site.register(Question)
app01/admin.py

  再次访问

 

  更多的在后续更新

猜你喜欢

转载自www.cnblogs.com/Ojia/p/10663271.html