发布网友
发布时间:2024-10-03 01:06
共1个回答
热心网友
时间:2024-10-03 05:43
导读:本篇文章首席CTO笔记来给大家介绍有关django怎么创建数据库的相关内容,希望对大家有所帮助,一起来看看吧。
怎么为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数据库
检查配置是否有语法错误
使用pythonmanage.pysqlallbooks显示mysql语法
使用pythonmanage.pysyncdb同步模型中的数据库
创建成功!
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里加如上代码也可以
然后再执行pythonmanage.pymigrate命令会发现表顺利创建。新增表,不影响原有库的其他表。
结语:以上就是首席CTO笔记为大家整理的关于django怎么创建数据库的全部内容了,感谢您花时间阅读本站内容,希望对您有所帮助,更多关于django怎么创建数据库的相关内容别忘了在本站进行查找喔。