导读:本篇文章首席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如何实现新增数据库的相关内容解答汇总了,希望对您有所帮助!如果解决了您的问题欢迎分享给更多关注此问题的朋友喔~