首页>>后端>>Python->django如何实现新增数据库(2023年最新整理)

django如何实现新增数据库(2023年最新整理)

时间:2023-12-11 本站 点击:0

导读:本篇文章首席CTO笔记来给大家介绍有关django如何实现新增数据库的相关内容,希望对大家有所帮助,一起来看看吧。

django怎样自动创建数据库table

;

django创建数据库表方法如下:

catcher:mysite catcher$ python manage.py makemigrations books

Migrations for 'books':

  0001_initial.py:

    - Create model Author

    - Create model Book

    - Create model Publisher

    - Add field publisher to book

catcher:mysite catcher$ python manage.py sqlmigrate books 0001

BEGIN;

--

-- Create model Author

--

CREATE TABLE "books_author" ("id" integer NOT NULL PRIMARY KEY AUTOINCREMENT, "first_name" varchar(30) NOT NULL, "last_name" varchar(40) NOT NULL, "email" varchar(254) NOT NULL);

--

-- Create model Book

--

CREATE TABLE "books_book" ("id" integer NOT NULL PRIMARY KEY AUTOINCREMENT, "title" varchar(100) NOT NULL, "publication_date" date NOT NULL);

CREATE TABLE "books_book_authors" ("id" integer NOT NULL PRIMARY KEY AUTOINCREMENT, "book_id" integer NOT NULL REFERENCES "books_book" ("id"), "author_id" integer NOT NULL REFERENCES "books_author" ("id"));

--

-- Create model Publisher

--

CREATE TABLE "books_publisher" ("id" integer NOT NULL PRIMARY KEY AUTOINCREMENT, "name" varchar(30) NOT NULL, "address" varchar(50) NOT NULL, "city" varchar(60) NOT NULL, "state_province" varchar(30) NOT NULL, "country" varchar(50) NOT NULL, "website" varchar(200) NOT NULL);

--

-- Add field publisher to book

--

ALTER TABLE "books_book" RENAME TO "books_book__old";

CREATE TABLE "books_book" ("id" integer NOT NULL PRIMARY KEY AUTOINCREMENT, "title" varchar(100) NOT NULL, "publication_date" date NOT NULL, "publisher_id" integer NOT NULL REFERENCES "books_publisher" ("id"));

INSERT INTO "books_book" ("publication_date", "publisher_id", "id", "title") SELECT "publication_date", NULL, "id", "title" FROM "books_book__old";

DROP TABLE "books_book__old";

CREATE INDEX "books_book_2604cbea" ON "books_book" ("publisher_id");

 

COMMIT;

catcher:mysite catcher$

   

 

catcher:mysite catcher$ sudo python manage.py migratePassword:Operations to perform:  Apply all migrations: admin, contenttypes, books, auth, sessionsRunning migrations:  Rendering model states... DONE  Applying contenttypes.0001_initial... OK  Applying auth.0001_initial... OK  Applying admin.0001_initial... OK  Applying admin.0002_logentry_remove_auto_add... OK  Applying contenttypes.0002_remove_content_type_name... OK  Applying auth.0002_alter_permission_name_max_length... OK  Applying auth.0003_alter_user_email_max_length... OK  Applying auth.0004_alter_user_username_opts... OK  Applying auth.0005_alter_user_last_login_null... OK  Applying auth.0006_require_contenttypes_0002... OK  Applying auth.0007_alter_validators_add_error_messages... OK  Applying books.0001_initial... OK  Applying sessions.0001_initial... OKcatcher:mysite catcher$

Django教程-02连接初始化数据库

Django教程——01安装使用

在上面一篇文章里,介绍了安装Django的方法,这里说说连接数据库吧

这篇主要介绍踩的坑和解决办法

正常连接和初始化数据库的命令是

执行这个命令的时候,出现了如下报错

经过一段排查,是我配置数据库的时候,多嵌套了一层default,修改为如下即可

然后继续执行migrate时,会报如下错误

本机环境是mac电脑,按官方教程操作的时候,发现安装mysqlclient的python包会依赖本机安装mysql或者mysql-client,但在装mysql和mysql-client的时候,发现一直报错。后面发现解决办法是,在settings.py文件里,加下如下代码,即改用pymsql连接即可。

或者在settings.py同目录的__init__.py里加如上代码也可以

然后再执行python manage.py migrate命令会发现表顺利创建。新增表,不影响原有库的其他表。

Django数据库怎么增加数据?

有两种方法:1)save通过创建模型类对象,执行对象的save()方法保存到数据库中。 from datetime import date book = BookInfo( btitle=西游记, bpub_date=date(1988,1,1), bread=10, bcomment=10) book.save() hero = HeroInfo( hname=孙悟空, hgender=0, hbook=book) hero.save() hero2 = HeroInfo( hname=猪八戒, hgender=0, hbook_id=book.id) hero2.save()2)create通过模型类.objects.create()保存。 HeroInfo.objects.create( hname=沙悟净, hgender=0, hbook=book)HeroInfo: 沙悟净在黑马程序员社区的技术交流当中,还有删除,改懂,查询的操作全部方法。

django怎么往mysql数据库插入数据

修改setting.py里面的DATABASES元组为

DATABASES = {

'default': {

'ENGINE': 'django.db.backends.mysql',

'NAME': 'books', #你的数据库名称

'USER': 'root', #你的数据库用户名

'PASSWORD': '', #你的数据库密码

'HOST': '', #你的数据库主机,留空默认为localhost

'PORT': '3306', #你的数据库端口

}

}

INSTALLED_APPS = (

'books',#你的数据库名称

)

在mysql里面创建books数据库

检查配置是否有语法错误

使用python manage.py sqlall books 显示mysql语法

使用python manage.py syncdb同步模型中的数据库

创建成功!

如何在django中使用多个数据库

.多个数据库联用时数据导入导出

使用的时候和一个数据库的区别是:

如果不是defalut(默认数据库)要在命令后边加 --database=数据库对应的settings.py中的名称 如: --database=db1 或 --database=db2

数据库同步(创建表)

python manage.py syncdb #同步默认的数据库,和原来的没有区别

#同步数据库 db1 (注意:不是数据库名是db1,是settings.py中的那个db1,不过你可以使这两个名称相同,容易使用)

python manage.py syncdb --database=db1

数据导出

python manage.py dumpdata app1 --database=db1 app1_fixture.json

python manage.py dumpdata app2 --database=db2 app2_fixture.json

python manage.py dumpdata auth auth_fixture.json

数据库导入

python manage.py loaddata app1_fixture.json --database=db1

python manage.py loaddata app2_fixture.json --database=db2

python编程--django框架,想要添加一个表进到数据库里

代码部分:

from django.db import models

 

class Student(models.Model):

    name = models.CharField(max_length=30)

    grade = models.IntegerField()

执行部分  :

python manage.py makemigrations

python manage.py migrate

结语:以上就是首席CTO笔记为大家整理的关于django如何实现新增数据库的相关内容解答汇总了,希望对您有所帮助!如果解决了您的问题欢迎分享给更多关注此问题的朋友喔~


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:/Python/25385.html