django初始化数据库的实例

yizhihongxing

下面是 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日

相关文章

  • django框架学习:二十一.admin列表优化和排序

    今天学习一下列表优化和排序 ModelAdmin django的options.py里面 ModelAdmin类定义的参数可以设置admin后台列表页面,相关的参数如下      排序字段 后台列表页面,如果想按某个字段排序,可以加个ordering参数      刷新页面后,就是降序了 列表分页 列表页默认是设置的100个记录,我们也可以修改下设置成默认每…

    2023年4月10日
    00
  • Django rest framework 自定义Exception

      使用Dango rest framework时,有时需要raise APIException到前端,为了统一错误返回格式,我们需要对exception的格式进行调整。 方法: 1. 在project/utils目录下新建exceptions.py 内容:   1 from rest_framework.views import exception_han…

    Django 2023年4月16日
    00
  • Python Django教程之实现天气应用程序

    我来为你详细讲解“Python Django教程之实现天气应用程序”的完整攻略,过程中将会包含两条示例说明。 简介 Python Django是一个高效的Web框架,能够快速创建可伸缩的Web应用程序。通过Django,我们可以使用Python编写高质量、可维护的Web应用程序。 本教程将通过实现一个天气应用程序,让你了解Python Django框架的使用…

    Django 2023年5月16日
    00
  • Django 一对多序列化和反序列化

     首先看一下model.py这个文件 #学生的表 用多对多来关联另一个表class StudentModel(models.Model): username = models.CharField(max_length=43) password = models.CharField(max_length=43) course = models.ManyToMa…

    Django 2023年4月13日
    00
  • Django中密码的加密、验密、解密操作

    Django提供了非常安全和简便的密码加密、验证和解密API,可以帮助在web应用中加强用户密码保护。下面我们详细讲解Django中密码加密、验密、解密的完整攻略和示例。 密码加密(Hashing) 在Django中,可以使用密码哈希工具来进行密码加密,并存储在数据库中。这个哈希算法确保密码的安全性,因为如果存储的密码被泄露,那么泄露的也是哈希值,而不是原始…

    Django 2023年5月15日
    00
  • django解决订单并发问题【推荐】

    以下是对django解决订单并发问题的完整攻略: 核心原理 Django解决并发问题的核心原理是通过数据库的事务机制来保证数据的一致性。当一个用户对某个数据进行操作时,Django会在数据库层面对数据进行锁定,使得其他用户不能同时对该数据进行操作。在用户完成操作后,Django会释放该锁。这样就可以避免多个用户同时对同一个数据进行操作,导致数据不一致的问题。…

    Django 2023年5月16日
    00
  • Django快速学习搭建blog项目

      新手学习Django,本文学习的文档是《Django Web开发指南》。好了我也是新手,没什么好说了,go!~ 首先先确定环境,我是在linux(Ubuntu14.04 gnome)下。 自带python2.7.6 我是用mysql数据库,没有的请下载 sudo apt-get install mysql-server-5.5 接下来准备下载Django…

    Django 2023年4月11日
    00
  • django 返回数据的几种常用姿势

    django 返回数据的几种常用姿势 render 传入一个html,返回一个页面 def case_list(request): return render(request, ‘case_list.html’) 传入一个html,再传入一个字典,字典的key和value作用于html home.html <h1>欢迎{{ username }}…

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