django mysql 初始化_Django 初始化数据库

django 初始化数据库

刷新数据库

guoguos-MacBook-Pro:mysite guoguo$ python manage.py sqlflush

BEGIN;

SET FOREIGN_KEY_CHECKS = 0;

TRUNCATE `auth_user`;

TRUNCATE `auth_group`;

TRUNCATE `auth_user_user_permissions`;

TRUNCATE `django_content_type`;

TRUNCATE `auth_group_permissions`;

TRUNCATE `django_session`;

TRUNCATE `django_admin_log`;

TRUNCATE `auth_user_groups`;

TRUNCATE `auth_permission`;

SET FOREIGN_KEY_CHECKS = 1;

COMMIT;

清空数据库的数据

guoguos-MacBook-Pro:mysite guoguo$ python manage.py flush

You have requested a flush of the database.

This will IRREVERSIBLY DESTROY all data currently in the 'django' database,

and return each table to an empty state.

Are you sure you want to do this?

Type 'yes' to continue, or 'no' to cancel: yes

删除数据库表结构

mysql> drop tables auth_permission;

Query OK, 0 rows affected (0.01 sec)

初始化数据库

guoguos-MacBook-Pro:mysite guoguo$ python manage.py migrate

Operations to perform:

Apply all migrations: admin, auth, contenttypes, sessions

Running migrations:

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 auth.0008_alter_user_username_max_length... OK

Applying sessions.0001_initial... OK

guoguos-MacBook-Pro:mysite guoguo$

guoguos-MacBook-Pro:mysite guoguo$

guoguos-MacBook-Pro:mysite guoguo$

guoguos-MacBook-Pro:mysite guoguo$

在setting.py INSTALLED_APPS = 中增加 guoguo 项目

INSTALLED_APPS = [

'guoguo',

'django.contrib.admin',

'django.contrib.auth',

'django.contrib.contenttypes',

'django.contrib.sessions',

'django.contrib.messages',

'django.contrib.staticfiles',

]

在项目里生成一个表文件

guoguos-MacBook-Pro:mysite guoguo$ python manage.py makemigrations guoguo

Migrations for 'guoguo':

guoguo/migrations/0001_initial.py

- Create model Person

生成表结构

guoguos-MacBook-Pro:mysite guoguo$ python manage.py sqlmigrate guoguo 0001

BEGIN;

--

-- Create model Person

--

CREATE TABLE `guoguo_person` (`id` integer AUTO_INCREMENT NOT NULL PRIMARY KEY, `first_name` varchar(30) NOT NULL, `last_name` varchar(30) NOT NULL);

COMMIT;

把表结构导入数据库

guoguos-MacBook-Pro:mysite guoguo$ python manage.py migrate

Operations to perform:

Apply all migrations: admin, auth, contenttypes, guoguo, sessions

Running migrations:

Applying guoguo.0001_initial... OK

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在使用Django连接MySQL数据库时,可以通过设置Django数据库连接参数来实现自动重连的功能。 首先,在Django的settings.py文件中,将DATABASES配置项中的'OPTIONS'键添加如下参数: 'DATABASES': { 'default': { 'ENGINE': 'django.db.backends.mysql', 'NAME': '数据库名', 'USER': '用户名', 'PASSWORD': '密码', 'HOST': '数据库地址', 'PORT': '数据库端口', 'OPTIONS': { 'autocommit': True, # 开启自动提交事务 'init_command': 'SET default_storage_engine=INNODB', # 设置默认存储引擎为InnoDB 'charset': 'utf8mb4', # 设置字符集为utf8mb4,支持中文及表情符号存储 'connect_timeout': 5, # 设置连接超时时间为5秒 'sql_mode': 'traditional', # 设置SQL模式为传统模式 'init_connect': "SET NAMES 'utf8mb4'" # 设置连接初始化时的编码 }, } } 其中,'connect_timeout'参数用于设置连接超时时间,当连接超时时,Django会自动尝试重新连接数据库。 此外,还可以通过配置数据库连接中的'CONN_MAX_AGE'参数来控制连接的最大寿命,例如: 'DATABASES': { 'default': { 'ENGINE': 'django.db.backends.mysql', 'NAME': '数据库名', 'USER': '用户名', 'PASSWORD': '密码', 'HOST': '数据库地址', 'PORT': '数据库端口', 'OPTIONS': { 'autocommit': True, 'init_command': 'SET default_storage_engine=INNODB', 'charset': 'utf8mb4', 'connect_timeout': 5, 'sql_mode': 'traditional', 'init_connect': "SET NAMES 'utf8mb4'" }, 'CONN_MAX_AGE': 300 # 设置连接的最大寿命为300秒,超过该时间将自动重新连接 } } 通过以上配置,当数据库连接超时或连接到达最大寿命时,Django会自动重新连接MySQL数据库,实现自动重连的功能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值