zoukankan      html  css  js  c++  java
  • Django Admin 简单部署上线

    前言

    打算为公司弄一个管理公用密码的平台,由于比较懒,就选择使用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
  • 相关阅读:
    dajngo控制台添加数据报错Requested setting DEFAULT_INDEX_TABLESPACE, but settings are not configured.
    windows cmd编辑文本
    Centos pip 安装uwsgi 报错“fatal error: Python.h: No such file or directory”
    linux 配置启动supervisor详细
    安装supervisor 失败 :/usr/bin/python: bad interpreter: No such file
    yum 安装,可以list,但是无法安装Error downloading packages: 。。。。 No such file or directory
    linux 所有命令无法使用
    mysql库、表、记录的基本操作
    2数据库的三大范式
    1初识数据库mysql
  • 原文地址:https://www.cnblogs.com/terrycy/p/6227646.html
Copyright © 2011-2022 走看看