前言

打算为公司弄一个管理公用密码的平台,由于比较懒,就选择使用Django admin,默认的admin并不漂亮,于是我使用了这个django-suit插件来美化

如图:

是不是比原来的漂亮多了。

美化admin

安装django-suit

pip install django-suit

  • 配置settings文件
DEBUG = True

ALLOWED_HOSTS = ['*', ]  # 表示所有IP都可以访问,可添加多个域,这里一定要设定,不然django运行后在其他机器访问会出现400错误
INSTALLED_APPS = [
'suit',
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'app01',
]
LANGUAGE_CODE = 'zh-Hans'

TIME_ZONE = 'Asia/Shanghai'

USE_I18N = True

USE_L10N = False

USE_TZ = False

DATETIME_FORMAT = 'Y-m-d H:i:s'

DATE_FORMAT = 'Y-m-d'
SUIT_CONFIG = {  # suit页面配置
'ADMIN_NAME': '密码管理系统', # 登录界面提示
'LIST_PER_PAGE': 10, # 分页,每页显示10条记录
'MENU': (
# 每一个字典表示左侧菜单的一栏,多个字典可显示多个左侧菜单栏
{'label': '密码管理', 'app': 'app01', 'models': ('app01.PwdInfo',)},
),
# label表示name,app表示上边的install的app,models表示用了哪些models
}
  • models.py表设计
class PwdInfo(models.Model):
owner = models.CharField('所有者', max_length=128)
ip = models.CharField('IP地址', max_length=2048)
pwd = models.CharField('密码', max_length=32)
comment = models.CharField('备注', max_length=1024, null=True, blank=True)
u_time = models.DateTimeField('更新时间', auto_now_add=True) class Meta:
verbose_name = '密码记录'
verbose_name_plural = "密码详情"
  • admin.py配置
from django.contrib import admin

# Register your models here.
from app01 import models
from django.contrib.auth.models import User, Group class AuthorAdmin(admin.ModelAdmin):
# 列表页,列表顶部显示的字段名称
list_display = ('id', 'owner', 'ip', 'pwd', 'comment', 'u_time')
# 列表页出现搜索框,参数是搜索的关键字区域
search_fields = ('ip', 'owner') # fields 表示可以修改哪些内容
fields = ('owner', 'ip', 'pwd', 'comment') # 页面中的列表顶端会有一个逐层深入的导航条,逐步迭代选项
date_hierarchy = 'u_time'
# 自然是排序所用了,减号代表降序排列
ordering = ('-u_time',)
# 右侧会出现过滤器,根据字段类型,过滤器显示过滤选项
list_filter = ('u_time',) admin.site.register(models.PwdInfo, AuthorAdmin) # 注册数据库表
admin.site.unregister(User) # 取消注册User表
admin.site.unregister(Group) # 取消注册Group表,取消注册User和Group两张表后,首页的用户和组的APP将不再显示。
  • apps.py设定
from django.apps import AppConfig

class App01Config(AppConfig):
name = 'app01'
verbose_name = '密码管理' # 首页显示的app的名称
  • app01下的__init__.py设定
default_app_config = 'app01.apps.App01Config'
  • urls.py设定
from django.conf.urls import url
from django.contrib import admin urlpatterns = [
url(r'^admin/', admin.site.urls),
url(r'^$', admin.site.urls), # 直接访问根路径就可以跳转到首页
]
  • 其他admin小技巧,,admin自定义js或css,以实现一些自己想要的效果,admin.py设置
class DirectionAdmin(admin.ModelAdmin):
list_display = ('describe', 'db_name') class Media:
js = ('js/my_own_admin.js',)
css = {
'all': ('css/admin/my_own_admin.css',)
}
admin.site.register(models.Direction, DirectionAdmin)
# 然后把对应的js或css文件写入到static下边的指定文件里吧,运行admin的页面会额外引用你自己的css和js文件

部署到Centos线上环境

我这里因为用的人数比较少,所以直接把django project丢到服务器上运行了,如果人数多的话建议nginx+uwsgi+django。

  • centos安装python3

由于centos默认没有python3,所以我们要自己安装一个。

安装过程中一定注意先装 sqlite-devel,不然运行django时会报 no module name _sqlite3错误

如果已经安装了python,需要先装sqlite-devel,然后再重新编译安装python

具体可参考我的另一篇博文:

centos6.5安装python3

  • 运行django

python3 manage.py runserver 0.0.0.0:80 &

# 加&符号表示后台运行

一定记得关闭centos的iptables,不然从其他的地方可能无法访问你的网站。

/etc/init.d/iptables stop

Django Admin 简单部署上线的更多相关文章

  1. Django admin简单介绍

    生成同步数据库的脚本: python manage.py makemigrations 同步数据库: python manage.py migrate 创建后台用户 python manage.py ...

  2. 【Django】 gunicorn部署纪要

    使用Gunicorn 来部署Django应用, 没有一步一步写怎么操作,简单记录下重要的点,方面以后查阅. 主要的方式还是Nginx反向代理到Gunicorn, Gunicorn wsgi来启动Dja ...

  3. [系统开发] Django Admin上传图片简单校验

    我的 models里有个ImageField字段,用来保存用户头像,希望通过Django Admin上传时校验头像大小,如果太大就报错,并且不保存. 网上有不少方法,有的通过第三方软件实现,有的通过自 ...

  4. Django的认证系统和Django admin的简单使用

    Django自带的用户认证 我们在开发一个网站的时候,无可避免的需要设计实现网站的用户系统.此时我们需要实现包括用户注册.用户登录.用户认证.注销.修改密码等功能,这还真是个麻烦的事情呢. Djang ...

  5. 解决django配合nginx部署后admin样式丢失

    解决django配合nginx部署后admin样式丢失 1.  在项目的settings.py文件里添加以下内容: STATIC_URL = '/static/' STATICFILES_DIRS = ...

  6. Nancy简单实战之NancyMusicStore(五):部署上线

    前言 经过本系列前面四篇文章,NancyMusicStore已经开发完成了,下面就差部署上线了,我们会在两个不同的环境部署.其实之前的文章也有讲解在 Linux下部署的相关事宜.下面开始本文的内容. ...

  7. Ceph分布式存储-原理介绍及简单部署

    1)Ceph简单概述Ceph是一个分布式存储系统,诞生于2004年,最早致力于开发下一代高性能分布式文件系统的项目.Ceph源码下载:http://ceph.com/download/.随着云计算的发 ...

  8. 沉淀,再出发:Django的简单使用

    沉淀,再出发:Django的简单使用 一.前言     在学习了python的基础语法之后,其实大家都很怀疑python的使用场景,其实python在很多场合都有很强的适应性,就比如说web开发之中使 ...

  9. 利用 Django admin 完成更多任务(转)

    利用 Django admin 完成更多任务   Django admin Django 为未来的开发人员提供了许多功能:一个成熟的标准库,一个活跃的用户社区,以及 Python 语言的所有好处.虽然 ...

随机推荐

  1. thinkphp 区分大小写的文件存在判断

    /** * 区分大小写的文件存在判断 * @param string $filename 文件地址 * @return boolean */ function file_exists_case($fi ...

  2. UVaLive2572 poj1418 UVa1308 Viva Confetti

    一次放下n个圆 问最终可见的圆的数量 应该是比较经典的问题吧 考虑一个圆与其他每个圆的交点O(n)个 将其割成了O(n)条弧 那么看每条弧的中点 分别向内向外调动eps这个点 则最上面的覆盖这个点的圆 ...

  3. 使用Morphia框架操作mongodb

    1.  mac 下 安装mongodb sudo brew update sudo brew install mongodb sudo brew services mongodb start 2.   ...

  4. linux下daemon守护进程的实现(以nginx代码为例)

    ngx_int_t ngx_daemon(ngx_log_t *log) { int fd; // 让init进程成为新产生进程的父进程: // 调用fork函数创建子进程后,使父进程立即退出.这样, ...

  5. Android开发:最详细的 Toolbar 开发实践总结

    最详细的 Toolbar 开发实践总结 过年前发了一篇介绍 Translucent System Bar 特性的文章 Translucent System Bar 的最佳实践,收到很多开发者的关注和反 ...

  6. 修改android应用包名 分类: android 学习笔记 2015-07-16 22:48 4人阅读 评论(0) 收藏

    由于项目需要,要修改已经开发好的应用包名,这本身很简单,但是如果你没找到门道,可能会白白浪费许多时间. 修改包名有三个地方要改,这三个地方的修改一定要按顺序来,否则你可能会遇到许多不必要的麻烦. 1. ...

  7. 10.11 noip模拟试题

    4题均为128M,1s 1. 锻炼计划(exercise.pas) 身体是革命的本钱,OIers不要因为紧张的学习和整天在电脑前而忽视了健康问题.小x设计了自己的锻炼计划,但他不知道这个计划是否可行, ...

  8. ASP.NET 打包下载文件

    使用的类库为:ICSharpCode.SharpZipLib.dll 一种是打包整个文件夹,另一种是打包指定的多个文件,大同小异: using ICSharpCode.SharpZipLib.Zip; ...

  9. 处理移动端click事件300ms延迟的好方法—FastClick

    下载地址:https://github.com/ftlabs/fastclick 1.click事件为什么有延迟? “...mobile browsers will wait approximatel ...

  10. Tomcat-java.lang.IllegalArgumentException: Document base F:apps does not exist or is not a readable

    启动Tomcat的时候,报错:java.lang.IllegalArgumentException: Document base F:apps does not exist or is not a r ...