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日

相关文章

  • Django 执行 makemigrations 显示 No changes detected in app

    在Django项目配置一下多数据库,但是运行 makemigrations 执行不正常 $ python manage.py makemigrations polls No changes detected in app ‘polls’   models.py 代码: class Question(models.Model): question_text =…

    Django 2023年4月10日
    00
  • Django使用第三方模块django-password-reset重置密码

    网上关于django第三方模块django-password-reset重置密码的几篇博客有一个严重的bug 见博客:https://blog.csdn.net/qq_42820268/article/details/81940353 中的内容。 关键是:上文提到的urls.py配置, 出现错误,并提出解决办法,实际上并没有解决,应该写为:url(r’^pw…

    Django 2023年4月13日
    00
  • 第一篇-Django建立数据库各表之间的联系(上)

    多表操作(一对多)   遇到的问题: 执行python manage.py makemigrations后报如下错误   TypeError: __init__() missing 1 required positional argument: ‘on_delete’ 这是外键导致的, 修改外键连接代码如标红部分。 class Book(models.Mod…

    Django 2023年4月11日
    00
  • Django logging配置及使用详解

    下面我将为你详细讲解“Django logging配置及使用详解”的完整攻略。 一、概述 Django是一个功能强大的Web框架,应用广泛,但在实际项目中,我们经常需要记录一些日志来帮助我们定位问题、排查故障。Django提供了一个logging模块来方便我们记录日志。 本文将详细介绍Django中logging的配置与使用。 二、系统默认日志配置 在Dja…

    Django 2023年5月16日
    00
  • 利用rest framework搭建Django API过程解析

    我来详细讲解 “利用rest framework搭建Django API过程解析” 的完整攻略,包括两条示例说明。 1. 环境配置 首先需要配置 Python 和 Django 的环境,以及安装 Django Rest Framework 库。 # 安装 Django pip install Django # 安装 Django Rest Framework…

    Django 2023年5月16日
    00
  • Python django框架开发发布会签到系统(web开发)

    Python Django框架是目前非常流行的Web开发框架,可以用于开发各种规模大小的Web应用,也是开发发布会签到系统的最佳选择之一。下面,我将从项目规划、环境搭建、数据库设计、模型设计、视图设计、路由设计、前端设计、测试和部署等方面详细讲解如何使用Python Django框架开发并发布会签到系统。 项目规划 在开始开发会签到系统之前,需要进行一些基础…

    Django 2023年5月16日
    00
  • linux Vue+nginx+django 实现前后端分离

    示例项目 — LuffyCity.com 的上线 具体解释,vue前端提供静态页面,且可以向后台发起get,post等restful请求 django后台提供数据支撑,返回json数据,返回给vue,进行数据页面渲染 下面是部署笔记: — 先从后端搞起 解决环境依赖 — 解决环境依赖的办法: 1 挨个报错的处理 2 pip3 freeze >re…

    Django 2023年4月12日
    00
  • Django利用Cookie实现反爬虫的例子

    当涉及到爬虫或网站安全时,我们经常会用到Cookie。Django是一个流行的Python Web框架,它使用安全的Cookie来防止爬虫访问网站。下面将演示两个例子,用Django利用Cookie来防止爬虫访问网站的方式。 示例1:使用Django中的装饰器 在Django中,我们可以使用装饰器来检查是否存在正确的Cookie。这里有一个示例,当检测到没有…

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