django初始化数据库的实例

下面是 Django 初始化数据库的实例攻略:

准备工作

Django项目中进行数据库操作之前,需要先在 settings.py 中配置数据库信息。具体数据库的设置信息包括:

  • 数据库的类型
  • 数据库的名称
  • 用户名和密码
  • 数据库的 Host 和 Port
  • 其他一些可选项

本文将以 PostgreSQL 数据库为例,介绍如何初始化数据库。在开始之前,需要确保已安装 psycopg2 Python 包。

1. 环境搭建

首先,需要在本地搭建好 PostgreSQL 环境。在本地安装好该数据库之后,需要创建一个新的数据库,并且为它创建一个新的用户及密码。

2. 配置 Django 项目

settings.py 中设置数据库信息,如下:

DATABASES = {
    "default": {
        "ENGINE": "django.db.backends.postgresql_psycopg2",
        "NAME": "your_database_name",
        "USER": "your_username",
        "PASSWORD": "your_password",
        "HOST": "127.0.0.1",
        "PORT": "5432",
    }
}

其中,ENGINE 表示数据库引擎的类型,这里指定为 postgresql_psycopg2default 表示数据库配置的名称,当在使用 Django 操作数据库时就可以使用这个名称来指定使用哪个数据库。

3. 数据库迁移

在配置完数据库信息后,需要进行数据库迁移操作,以创建数据库中的表。具体步骤如下:

3.1 创建 Django 应用

在创建数据库之前,需要创建一个 Django 的应用,可以通过 python manage.py startapp your_app_name 命令来创建。

3.2 定义模型

在应用中的 models.py 文件中定义模型,例如:

from django.db import models

class Person(models.Model):
    name = models.CharField(max_length=100)
    age = models.IntegerField()
    class Meta:
        db_table = 'person'

Person 模型继承自 models.Model,表示数据库表的一个映射。其中 nameage 为该表的两个字段,Meta 中的 db_table 用于指定该模型所对应的数据库表的名称。

3.3 进行迁移操作

完成上述模型定义后,需要执行下列命令来进行数据库迁移操作:

python manage.py makemigrations
python manage.py migrate

makemigrations 命令用于生成迁移文件,而 migrate 命令则用于将生成的迁移文件应用到数据库中。

示例

假设我们创建了一个 DJANGO 应用,应用名为 myapp。则可以按照以下方式初始化数据库。

示例1

# myapp/models.py
from django.db import models

class Person(models.Model):
    name = models.CharField(max_length=30)
    age = models.IntegerField()

# 初始化数据库
python manage.py makemigrations
python manage.py migrate

执行 python manage.py makemigrations 命令后,会生成 myapp/migrations/0001_initial.py 文件,该文件内容如下:

# Generated by Django 3.0.7 on 2020-06-14 14:10

from django.db import migrations, models


class Migration(migrations.Migration):

    initial = True

    dependencies = [
    ]

    operations = [
        migrations.CreateModel(
            name='Person',
            fields=[
                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('name', models.CharField(max_length=30)),
                ('age', models.IntegerField()),
            ],
        ),
    ]

然后执行 python manage.py migrate 命令,会在 your_database_name 数据库中创建名为 myapp_person 的表。

示例2

# myapp/models.py
from django.db import models

class Book(models.Model):
    title = models.CharField(max_length=100)
    author = models.CharField(max_length=50)

# 初始化数据库
python manage.py makemigrations myapp
python manage.py migrate myapp

执行 python manage.py makemigrations myapp 命令后,会生成 myapp/migrations/0001_initial.py 文件,该文件内容如下:

# Generated by Django 3.0.7 on 2020-06-14 14:20

from django.db import migrations, models


class Migration(migrations.Migration):

    dependencies = [
    ]

    operations = [
        migrations.CreateModel(
            name='Book',
            fields=[
                ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('title', models.CharField(max_length=100)),
                ('author', models.CharField(max_length=50)),
            ],
        ),
    ]

然后执行 python manage.py migrate myapp 命令,会在 your_database_name 数据库中创建名为 myapp_book 的表。

到此,在Django框架上初始化数据库的流程就结束了。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:django初始化数据库的实例 - Python技术站

(0)
上一篇 2023年5月16日
下一篇 2023年5月16日

相关文章

  • Python – Django – 显示作者列表

    在 views.py 中添加展示作者列表的函数 from django.shortcuts import render, redirect, HttpResponse from app01 import models # 展示出版社列表 def publisher_list(request): pass # 添加新的出版社 def add_publisher…

    Django 2023年4月10日
    00
  • Django多app路由分发(纯后端)

    下面是对于“Django多app路由分发(纯后端)”的详细讲解。 什么是Django多app路由分发 在一个Django项目中可以包含多个app,每个app有自己的职责和功能。使用Django多app路由分发可以实现让不同的url请求被不同的app处理。这样可以让项目更加模块化,易于维护。 如何实现Django多app路由分发 要实现Django多app路由…

    Django 2023年5月16日
    00
  • Python——Django-urls.py的作用

    一、urls.py的作用是保存路径和函数的对应关系 二、函数返回指定内容 from django.urls import path #引用HTTP协议的代码 from django.shortcuts import HttpResponse def yimi(request): #request参数保存了所有和用户浏览器请求相关的数据,返回指定内容 retu…

    Django 2023年4月10日
    00
  • 浅谈Python之Django(三)

    首先需要阐述的是,“浅谈Python之Django(三)”是一篇介绍Django框架的文章,偏重于对Django的基础概念和应用的讲解。这篇文章主要分为以下几个部分: 1. Django介绍 这部分主要是对Django框架进行简单介绍,涵盖了Django的功能特点、适用场景、优势和缺点等信息。 2. Django入门 这部分主要是讲解如何在本地环境下搭建Dj…

    Django 2023年5月16日
    00
  • Vue与Django数据交互

    首先配置路由信息,理论上都会添加二级路由:所以会有请求转发 1 from django.conf.urls import url,include 2 3 url(r’^api/(?P<version>\w+)/’,include(“api.urls”)), 此时请求会转发给二级路由:api.urls 1 url(r’^course/$’,cour…

    Django 2023年4月13日
    00
  • Django在Ubuntu14.04的部署方法

    我将为您提供详细的”Django在Ubuntu14.04的部署方法”攻略: 确保服务器环境 在开始部署Django应用程序之前,请确保你的服务器上已经安装了以下软件: Python 2.7 pip包管理器 virtualenv虚拟环境 nginx服务器 gunicorn网关 你可以使用以下命令来安装这些软件: $ sudo apt-get update $ …

    Django 2023年5月16日
    00
  • Django框架模板的使用方法示例

    下面是本文档的详细讲解“Django框架模板的使用方法示例”的完整攻略,其中包含两条示例说明: Django框架中模板的基本使用方法 创建Django项目 首先我们需要使用Django创建一个新的项目: django-admin startproject mysite 创建Django应用 接着我们需要在Django项目中创建一个应用程序: python m…

    Django 2023年5月16日
    00
  • Django框架models使用group by详解

    那么我将给出一个完整的攻略,讲解如何在 Django 框架中使用 group by。 什么是 group by? group by 操作是一种 SQL 语句,它把数据集合分成多个小组,并对每个小组执行聚集函数,例如计算总和、平均值、最小值等。在 Django 框架中使用 group by,可以对数据进行分组,并进行聚合计算,以得出想要的统计结果。 在 Dja…

    Django 2023年5月16日
    00
合作推广
合作推广
分享本页
返回顶部