python3 django-admin 初始化后台管理项目(mysql)

09/11 15:35
阅读数 26

环境和工具

  • python3
  • django
  • mysql
  • PyCharm
$ python3 --version
Python 3.7.0
$ django-admin --version
2.2

python3和django安装

参考 http://www.runoob.com/django/django-install.html

django初始化项目

使用django-admin来初始化一个项目

$ django-admin startproject mydjango
$ cd mydjango
$ tree
.
├── manage.py #与该 Django 项目进行交互的命令行工具
└── mydjango  #项目主容器
    ├── __init__.py #告诉 Python 该目录是一个 Python 包
    ├── settings.py #项目的设置文件
    ├── urls.py #路由文件
    └── wsgi.py #WSGI 兼容的Web服务器配置

启动web服务

$ python3 manage.py runserver localhost:8000
November 07, 2018 - 13:02:55
Django version 2.2, using settings 'mydjango.settings'
Starting development server at http://localhost:8000/
Quit the server with CONTROL-C.

浏览器访问 http://localhost:8000

访问 http://localhost:8000/admin

但这个时候没有数据库配置和用户数据,所以无法登陆

初始化后台用户

这个时候先用PyCharm打开项目

修改配置

修改项目的数据库连接

打开/mydjango/mydjango/settings.py文件,默认数据库连接为sqlite3

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.sqlite3',
        'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
    }
}

修改为mysql

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql', #连接引擎
        'NAME': 'mydjango', #数据库名称
        'USER': 'root', #用户名
        'PASSWORD': 'root', #密码
        'HOST': '127.0.0.1', #地址
        'PORT': '3306', #端口
    }
}

修改语言

#LANGUAGE_CODE = 'en-us'
LANGUAGE_CODE = 'zh-Hans'

修改时区

#TIME_ZONE = 'UTC'
TIME_ZONE = 'Asia/Shanghai'

迁移数据库配置变化到mysql

$ python3 manage.py migrate
.
...
django.core.exceptions.ImproperlyConfigured: Error loading MySQLdb module.
django.core.exceptions.ImproperlyConfigured: Error loading MySQLdb module.
Did you install mysqlclient?

发现报错,原因是django连接数据库,提示找不到MySQLdb模块,是否安装了mysqlclient(mysql客户端工具)? 需要项目引入python的mysql客户端模块:pymysql

如果pymysql未在开发环境安装,需要安装:

$ pip3 install pymysql 

安装完成后,在/mydjango/mydjango/__init__.py文件中,引入mysql客户端模块:

import pymysql
pymysql.install_as_MySQLdb()

继续检测数据库配置变化,并迁移变化到数据库:

$ python3 manage.py migrate
.
...
pymysql.err.InternalError: (1049, "Unknown database 'mydjango'")

提示找不到数据库mydjango,在mysql中新建数据库mydjango

CREATE DATABASE `myjdango` 
DEFAULT CHARACTER SET = `utf8mb4`;

继续检测变化,并迁移变化到数据库

$ python3 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 admin.0003_logentry_add_action_flag_choices... 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 auth.0009_alter_user_last_name_max_length... OK
  Applying sessions.0001_initial... OK

执行成功,查看数据库,已自动创建相关表:

创建后台超级用户

$ python3 manage.py createsuperuser
.
用户名 (leave blank to use 'xxx'): admin
电子邮件地址: admin@test.com
Password: admin #实际不显示
Password (again): admin #实际不显示
密码跟 电子邮件地址 太相似了。
密码长度太短。密码必须包含至少 8 个字符。
这个密码太常见了。
Bypass password validation and create user anyway? [y/N]: y
Superuser created successfully.

查看auth_user表,发现多了一条admin的数据

初始化后台用户到这里已经完成了。

登录到后台

使用PyCharm启动web服务

控制台启动日志:

pydev debugger: process 89608 is connecting

Connected to pydev debugger (build 182.4505.26)
pydev debugger: process 89609 is connecting

Performing system checks...

System check identified no issues (0 silenced).
November 07, 2018 - 22:54:34
Django version 2.1.3, using settings 'mydjango.settings'
Starting development server at http://127.0.0.1:8000/
Quit the server with CONTROL-C.

浏览器访问 http://127.0.0.1:8000/admin

跳出登录页面后,使用前面创建的 admin用户登录

登录成功后,跳转到站点管理页面:

这里是django集成好的后台管理页面,可以对用户、组、权限进行管理

项目地址

https://gitee.com/yimingkeji/DjangoAdmin

展开阅读全文
打赏
0
0 收藏
分享
加载中
更多评论
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部