python django 信息管理系统_Django学习之后台管理系统

【创建超级用户】

pycharm 菜单栏 >>> Tools >>> Run manage.py Task >>>

manage.py@MxOnline> createsuperuser (创建超级用户)

username 用户名

email 邮箱

password 密码

password 确认密码

另外还需要对settings.py文件进行设置LANGUAGE_CODE = 'en-us' # 默认英文

TIME_ZONE = 'UTC' # 默认时区

USE_I18N = True

USE_L10N = True

USE_TZ = True # 默认使用UTC国际时间,所以我们要改为False来使用本地服务器时间

变更后:LANGUAGE_CODE = 'zh-hans'

TIME_ZONE = 'Asia/Shanghai'

USE_I18N = True

USE_L10N = True

USE_TZ = False

【加入注册用户】

apps/users/admin.py (用来注册后台管理系统的)# _*_ encoding:utf-8 _*_

from django.contrib import admin

from .models import UserProfile

# Register your models here.

class UserProfileAdmin(admin.ModelAdmin): # 继承admin的ModelAdmin方法

pass

admin.site.register(UserProfile,UserProfileAdmin)

# 用admin.site.register关联注册UserProfile,关联的类为UserProfileAdmin

# 这样后台就会多出一个用户信息栏目,并且可以编辑用户了

先导入UserProfile类,然后新建一个继承admin.ModelAdmin的类,再把操作关联起来。

后台就会显示了USERS目录

5a834f58baca430ea83de5c99112c3db.png

我们添加用户时显示错误(因为我们数据表的长度设置是5,但是默认值是6;所以需要去修改一下数据表)

19f933082d9146e7baf5e233e74620bb.png

将users的models.py把性别的长度5改成6之后

pycharm 菜单栏 >>> Tools >>> Run manage.py Task >>>

manage.py@MxOnline> makemigrations users [appname] (检测表)

manage.py@MxOnline> migrate [appname]

(可能出现的错误:ValueError:too many values to unpack)

这可能是因为将app迁移到apps文件夹后自动在某些路径前加入了 apps. 但是我们已经在settings.py文件中添加过路径了,解决方法:查找migrations下的文件中含有apps.前缀的,将apps.删除即可(apps是我建立的文件夹名称)

添加用户时可能会出现以下错误:

IntegrityError at /admin/users/userprofile/add/

(1452, 'Cannot add or update a child row: a foreign key constraint fails (`mxonline`.`django_admin_log`, CONSTRAINT `django_admin_log_user_id_c564eba6_fk_auth_user_id` FOREIGN KEY (`user_id`) REFERENCES `auth_user` (`id`))')

外键约束。大概意思是:插入数据的时候,外键的值不是对应的主键的值。但是这时候表里是没有数据的,所以可能有主键值;插入数据时它的根节点可能不存在,所以插入失败。建议查询“外键”相关知识。两张表不是并列关系,而是父子关系。

配置成下面这种即可使用:DATABASES = {

'default': {

'ENGINE': 'django.db.backends.mysql',

'NAME': 'mxonline',

'USER': 'root',

'PASSWORD':'',

'HOST': '127.0.0.1',

'PORT':'3306',

'OPTIONS':{

"init_command":"SET foreign_key_checks = 0;",

}

}

}

===============================================================================================

【后台管理之Xadmin】

1、先进入CMD虚拟环境命令行pip安装,以便获取到依赖包

2a3fc4a3db5c4db2a5e94ec813013e05.png

2、将 crispy_forms 和 xadmin 注册到app当中(settings.py文件中)INSTALLED_APPS = [

'django.contrib.admin',

'django.contrib.auth',

'django.contrib.contenttypes',

'django.contrib.sessions',

'django.contrib.messages',

'django.contrib.staticfiles',

'users',

'courses',

'organization',

'operation',

'crispy_forms',

'xadmin',

]

3、将urls配置到admin的改为xadmin指向import xadmin

urlpatterns = [

url(r'^xadmin/', xadmin.site.urls),

]

4、注销原装admin注册方式(users/admin.py),删除刚才的class和导入,然后重启# _*_ encoding:utf-8 _*_

from django.contrib import admin

# Register your models here.

可能出现的错误:ProgrammingError at /xadmin/

(1146, "Table 'mxonline.xadmin_usersettings' doesn't exist")

Request Method:GET

Request URL:http://192.168.88.129:8000/xadmin/

Django Version:1.9.8

Exception Type:ProgrammingError

Exception Value:

(1146, "Table 'mxonline.xadmin_usersettings' doesn't exist")

Exception Location:C:\Users\Administrator\Envs\mxonline\lib\site-packages\MySQLdb\connections.py in defaulterrorhandler, line 36

Python Executable:C:\Users\Administrator\Envs\mxonline\Scripts\python.exe

Python Version:2.7.15

Python Path:

['C:\\Users\\Administrator\\PycharmProjects\\MxOnline\\apps',

'C:\\Users\\Administrator\\PycharmProjects\\MxOnline',

'C:\\Users\\Administrator\\PycharmProjects\\MxOnline',

'C:\\Users\\Administrator\\PycharmProjects\\MxOnline\\apps',

'C:\\Windows\\system32\\python27.zip',

'C:\\Users\\Administrator\\Envs\\mxonline\\DLLs',

'C:\\Users\\Administrator\\Envs\\mxonline\\lib',

'C:\\Users\\Administrator\\Envs\\mxonline\\lib\\plat-win',

'C:\\Users\\Administrator\\Envs\\mxonline\\lib\\lib-tk',

'C:\\Users\\Administrator\\Envs\\mxonline\\Scripts',

'c:\\python27\\Lib',

'c:\\python27\\DLLs',

'c:\\python27\\Lib\\lib-tk',

'C:\\Users\\Administrator\\Envs\\mxonline',

'C:\\Users\\Administrator\\Envs\\mxonline\\lib\\site-packages']

Server time:星期二, 17 七月 2018 12:48:55 +0800

这是因为我们还没有把xadmin的表生成和创建到mysql当中。

pycharm 菜单栏 >>> Tools >>> Run manage.py Task >>>

manage.py@MxOnline> makemigrations [appname] (生成表)

manage.py@MxOnline> migrate [appname] (写入mysql)

这样既可完成。

fe12e0ef37894b818eb3cd12adc70e55.png

通过以上操作就已经完成了,但是如果我们想要体验最新版的话就直接到Github上下载最新版,然后解压将admin文件夹复制到

【源码方式安装xadmin】

完成以上步骤(因为需要依赖库),再来拷贝安装

1、将下载解压后的admin文件夹拷贝到项目根目录

2、新建Python Package命名为extra_apps(表示第三方库app)

3、IDE中Sources Root文件夹让extra_apps为根目录,并且在settings.py文件中加入app路径import os

import sys

# Build paths inside the project like this: os.path.join(BASE_DIR, ...)

BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))

sys.path.insert(0,os.path.join(BASE_DIR,'apps'))

sys.path.insert(0,os.path.join(BASE_DIR,'extra_apps'))

4、卸载虚拟环境中的xadmin (pip uninstall xadmin)

5、重新运行(可能会遇到以下错误)Unhandled exception in thread started by

Traceback (most recent call last):

File "C:\Users\Administrator\Envs\mxonline\lib\site-packages\django\utils\autoreload.py", line 226, in wrapper

fn(*args, **kwargs)

File "C:\Users\Administrator\Envs\mxonline\lib\site-packages\django\core\management\commands\runserver.py", line 109, in inner_run

autoreload.raise_last_exception()

File "C:\Users\Administrator\Envs\mxonline\lib\site-packages\django\utils\autoreload.py", line 249, in raise_last_exception

six.reraise(*_exception)

File "C:\Users\Administrator\Envs\mxonline\lib\site-packages\django\utils\autoreload.py", line 226, in wrapper

fn(*args, **kwargs)

File "C:\Users\Administrator\Envs\mxonline\lib\site-packages\django\__init__.py", line 18, in setup

apps.populate(settings.INSTALLED_APPS)

File "C:\Users\Administrator\Envs\mxonline\lib\site-packages\django\apps\registry.py", line 85, in populate

app_config = AppConfig.create(entry)

File "C:\Users\Administrator\Envs\mxonline\lib\site-packages\django\apps\config.py", line 90, in create

module = import_module(entry)

File "c:\python27\Lib\importlib\__init__.py", line 37, in import_module

__import__(name)

File "C:\Users\Administrator\PycharmProjects\MxOnline\extra_apps\xadmin\__init__.py", line 4, in

from xadmin.sites import AdminSite, site

File "C:\Users\Administrator\PycharmProjects\MxOnline\extra_apps\xadmin\sites.py", line 3, in

from future.utils import iteritems

ImportError: No module named future.utils

5-1、解决方法:

这是因为没安装future,因此,执行一下如下命令安装相关依赖包即可:

pip install future six httplib2

pip install django-import-export

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值