python manage.py dbshell #django快速进入数据库
MariaDB [devops]> show tables;
+-------------------+
| Tables_in_devops |
+-------------------+
| django_migrations |
+-------------------+
python manage.py showmigrations
python manage.py migrate #同步数据库
python manage.py showmigrations
python manage.py dbshell
MariaDB [devops]> show tables;
+----------------------------+
| Tables_in_devops |
+----------------------------+
| auth_group |
| auth_group_permissions |
| auth_permission |
| auth_user |
| auth_user_groups |
| auth_user_user_permissions |
| django_admin_log |
| django_content_type |
| django_migrations |
| django_session |
+----------------------------+
MariaDB [devops]> select * from django_migrations;
+----+--------------+------------------------------------------+---------------------+
| id | app | name | applied |
+----+--------------+------------------------------------------+---------------------+
| 1 | contenttypes | 0001_initial | 2018-12-12 08:27:34 |
| 2 | auth | 0001_initial | 2018-12-12 08:27:34 |
| 3 | admin | 0001_initial | 2018-12-12 08:27:34 |
| 4 | admin | 0002_logentry_remove_auto_add | 2018-12-12 08:27:34 |
| 5 | contenttypes | 0002_remove_content_type_name | 2018-12-12 08:27:35 |
| 6 | auth | 0002_alter_permission_name_max_length | 2018-12-12 08:27:35 |
| 7 | auth | 0003_alter_user_email_max_length | 2018-12-12 08:27:35 |
| 8 | auth | 0004_alter_user_username_opts | 2018-12-12 08:27:35 |
| 9 | auth | 0005_alter_user_last_login_null | 2018-12-12 08:27:35 |
| 10 | auth | 0006_require_contenttypes_0002 | 2018-12-12 08:27:35 |
| 11 | auth | 0007_alter_validators_add_error_messages | 2018-12-12 08:27:35 |
| 12 | auth | 0008_alter_user_username_max_length | 2018-12-12 08:27:35 |
| 13 | sessions | 0001_initial | 2018-12-12 08:27:35 |
+----+--------------+------------------------------------------+---------------------+
1、同步数据库
python manage.py migrate
(如果其他数据库创建不出来,
原因:没有指定数据库,将只初始化默认的default数据库;
针对每个应用的数据库分别执行python manage.py migrate --database=app_db_name)
2、创建用户
使用django shell 创建普通用户:创建users最直接的方法是使用create_user()辅助函数
(python36env) [vagrant@localhost devops]$ python manage.py shell
In [1]: from django.contrib.auth.models import User
In [2]: ?User.objects.create_user
Signature:
User.objects.create_user(
['username', 'email=None', 'password=None', '**extra_fields'],
)
Docstring: <no docstring>
File: /vagrant/python36env/lib/python3.6/site-packages/django/contrib/auth/models.py
Type: method
In [3]: User.objects.create_user('rock', 'rock@changecan.com', '123456')
Out[3]: <User: rock>
(python36env) [vagrant@localhost devops]$ python manage.py dbshell
MariaDB [devops]> select * from auth_user\G
*************************** 1. row ***************************
id: 1
password: pbkdf2_sha256$36000$YuxnCfHeXuTS$XWW4MzrHrx5g/GK/5BDQVSzwVg7GpzQwfmKAHvsn4os=
last_login: NULL
is_superuser: 0
username: rock
first_name:
last_name:
email: rock@changecan.com
is_staff: 0
is_active: 1
date_joined: 2018-12-12 08:41:32
1 row in set (0.00 sec)
3、创建管理员
(python36env) [vagrant@localhost devops]$ python manage.py shell
In [1]: from django.contrib.auth.models import User
In [5]: User.objects.create_superuser("admin", "admin@changecan.com", "123456")
Out[5]: <User: admin>
MariaDB [devops]> select * from auth_user\G
*************************** 1. row ***************************
id: 1
password: pbkdf2_sha256$36000$YuxnCfHeXuTS$XWW4MzrHrx5g/GK/5BDQVSzwVg7GpzQwfmKAHvsn4os=
last_login: NULL
is_superuser: 0
username: rock
first_name:
last_name:
email: rock@changecan.com
is_staff: 0
is_active: 1
date_joined: 2018-12-12 08:41:32
*************************** 2. row ***************************
id: 2
password: pbkdf2_sha256$36000$vZS7rwmZEvIn$CkZYxiw9OvbjufLTQH5dGaG4lJWXSkpYUpgcs41BOKg=
last_login: NULL
is_superuser: 1
username: admin
first_name:
last_name:
email: admin@changecan.com
is_staff: 1
is_active: 1
date_joined: 2018-12-12 09:02:55
2 rows in set (0.00 sec)
4、修改密码
Django不会在user模型上存储原始的(明文)密码,而只是一个哈希。因为这个原因,不要尝试直接操作user的password属性。这也是为什么创建一个user时要使用辅助函数。
(python36env) [vagrant@localhost devops]$ python manage.py shell
In [1]: from django.contrib.auth.models import User
In [6]: u = User.objects.get(username="rock")
In [7]: u.set_password('654321')
In [8]: u.save()
或者使用:
(python36env) [vagrant@localhost devops]$ python manage.py changepassword rock