由于工作需要,接触了大半年时间的Django+xadmin框架,一直没空对这块对进行相关的梳理。最近在同事的怂恿下,就在这分享下笔者的学习及工作经验吧。

好了,话不多说,下面开始进入正题:

转载请注明出处:https://www.cnblogs.com/v88v/p/8858853.html

环境需求:

笔者的工作系统环境:Mac 10.13.4+Python3.6.x+Django2.0.x+Xadmin2.0

因此本系列教程均是以此组合为基础展开讲解。其他系统版本也基本适用,有小部分不兼容之处请自行测试。

一、Django及xadmin安装

可以使用pip命令进行安装,或者直接下载安装包用python命令安装:

pip3 install Django

pip3 install git+git://github.com/sshwsfc/xadmin.git@django2

由于xadmin2.0官方版本存在一些兼容性bug,笔者对其源码进行了部分改动

在装完官方版的Django和xadmin之后,将笔者的xadmin修复版本替换到xadmin的原安装目录下即可。

更详细安装过程不再赘述,要细说的话得花一整天时间。

二、使用Pycharm创建项目

1、打开pycharm,第一次创建项目,我们就选择create new project

2、按图上的顺序配置好,Location及Application name可以根据自己需要自定义,项目解析器笔者此处选择了系统环境路径。全部设置好之后创建项目。

3、创建好的项目长得是这个样子的

4、点右上角的绿色启动箭头,OK,我们的项目已经正常跑起来了。

同时,我们也可以在项目目录下,执行命令来运行项目

python3 manage.py runserver 0.0.0.0:

万里长征迈出了胜利的第一步,接下来要来嫁接xadmin。

三、 改造Django项目,适配xadmin

1、首先,看看项目的结构

manage.py是网站的启动文件,一般不需要改动。
demo文件夹是网站配置文件夹,我们需要操作的文件主要有:settings.py和urls.py
settings.py是网站的主要配置文件
urls.py是路由文件
app文件夹是创建项目时默认创建的模块,主要的开发在这里。

2、下面开始着手改造,先来修改url.py

# from django.contrib import admin
import xadmin
from django.urls import path
from django.conf import settings
from django.conf.urls.static import static urlpatterns = [
# path('admin/', admin.site.urls),
path(r'', xadmin.site.urls),
]

3、接着是修改settings.py,将127.0.0.1加入白名单

ALLOWED_HOSTS = ['127.0.0.1']

4、修改INSTALLED_APPS,加入xadmin相关组件

在最上面加入app.apps.AppConfig,接着添加xadmin及crispy_forms

INSTALLED_APPS = [
'app.apps.AppConfig',
'xadmin',
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'crispy_forms',
]

5、这样,我们便能够让xadmin项目跑起来了。试试看

点击登录,会发现报了一个错

上面的提示是,没有用户表。原来,我们还没有对数据库进行初始化。

6、初始化数据库

项目创建好时默认的是使用sqlite3数据库,我们也可以指定它使用MySQL数据库,修改 DATABASES

DATABASES = {
'default': {
# 'ENGINE': 'django.db.backends.sqlite3',
# 'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
'ENGINE': 'django.db.backends.mysql', # 数据库引擎
'NAME': 'demo',
'USER': 'root',
'PASSWORD': '',
'HOST': '127.0.0.1',
'PORT': '',
'OPTIONS': {
'init_command': "SET sql_mode='STRICT_TRANS_TABLES';" # 初始化数据库的命令
}
}
}

运行数据库迁移命令

python3 manage.py migrate

7、此外,我们还要建立一个超级管理员帐号,设置好帐号密码邮箱信息

python3 manage.py createsuperuser

8、好了,万事具备,下面可以顺利的进入管理界面了

9、现在这个界面是英文的,看起来是不是有点不太习惯呢?下面我们就要让它显示中文。

在settings.py文件开头添加一行代码

from django.utils.translation import ugettext_lazy as _

修改 LANGUAGE_CODE 和 LANGUAGES

LANGUAGE_CODE = 'zh-hans'

LANGUAGES = [
('en', _('English')),
('zh-hans', _('Simplified Chinese')),
('zh-hant', _('Traditional Chinese')),
]

10、重新运行一下,OK,我们熟悉的中文界面呈现在眼前。

好了,不早了,该下班回家了。 下一节,我们将创建模型。

转载请注明出处:https://www.cnblogs.com/v88v/p/8858853.html

【Python3.6+Django2.0+Xadmin2.0系列教程一】环境搭建及项目创建的更多相关文章

  1. 跨平台移动开发phonegap/cordova 3.3全系列教程-开发环境搭建

    操作系统:windwos xp 1.   安装JDK 打开如下网站下载JDK http://www.oracle.com/technetwork/java/javase/downloads/index ...

  2. Django2.1,Xadmin2.0下的问题记录

    此篇博文长期更新…… 环境: Ubuntu18.04, Python3.6, Django2.1, Xadmin2.0 1. Xadmin添加用户小组件时报错:xadmin render() got ...

  3. 【全网最全的博客美化系列教程】01.添加Github项目链接

    全网最全的博客美化系列教程相关文章目录 [全网最全的博客美化系列教程]01.添加Github项目链接 [全网最全的博客美化系列教程]02.添加QQ交谈链接 [全网最全的博客美化系列教程]03.给博客添 ...

  4. [大数据从入门到放弃系列教程]在IDEA的Java项目里,配置并加入Scala,写出并运行scala的hello world

    [大数据从入门到放弃系列教程]在IDEA的Java项目里,配置并加入Scala,写出并运行scala的hello world 原文链接:http://www.cnblogs.com/blog5277/ ...

  5. QT5.6.0 VS2013 Win764位系统QT环境搭建过程

    QT5.6.0 VS2013 Win764位系统QT环境搭建过程 没用过QT自己跟同事要了安装包,按照同事指导方法操作安装部署开发环境结果遇到好多问题,错误网上搜遍了所有帖子也没有找到合适的解决方案. ...

  6. 【转】RHadoop实践系列之一:Hadoop环境搭建

    RHadoop实践系列之一:Hadoop环境搭建 RHadoop实践系列文章,包含了R语言与Hadoop结合进行海量数据分析.Hadoop主要用来存储海量数据,R语言完成MapReduce 算法,用来 ...

  7. MyBatis学习系列一之环境搭建

    目录 MyBatis学习系列一之环境搭建 MyBatis学习系列二——增删改查 MyBatis学习系列三——结合Spring 学习一个新的知识,首先做一个简单的例子使用一下,然后再逐步深入.MyBat ...

  8. MyBatis实例教程--开发环境搭建

    MyBatis实例教程--开发环境搭建 准备工作: 1.mybatis 的开发环境搭建,选择: eclipse j2ee 版本,mysql 5.1 ,jdk 1.7,mybatis3.2.0.jar包 ...

  9. vue 快速入门 系列 —— 使用 vue-cli 3 搭建一个项目(上)

    其他章节请看: vue 快速入门 系列 使用 vue-cli 3 搭建一个项目(上) 前面我们已经学习了一个成熟的脚手架(vue-cli),笔者希望通过这个脚手架快速搭建系统(或项目).而展开搭建最好 ...

随机推荐

  1. linux-2.6.18源码分析笔记---信号

    一.相关数据结构及其位置(大致浏览即可,介绍流程时再来仔细看) 1.1 进程描述符struct task_struct所在目录:include\linux\sched.h 关注task_struct中 ...

  2. 微信APP长按图片禁止保存到本地

    项目遇到一个问题,在web页面中,禁止长按图片保存, 使用css属性:  img { pointer-events: none; } 或者  img { -webkit-user-select: no ...

  3. centos 安装atom 笔记

    一.安装atom  "To install Atom on Linux, you can download a Debian package or RPM package either fr ...

  4. 有关java中的hashCode问题

    1. HashSet集合存储数据的结构(哈希表) 1.1 什么是哈希表? 哈希表底层使用的也是数组机制,数组中也存放对象,而这些对象往数组中存放时的位置比较特殊,当需要把这些对象给数组中存放时,那么会 ...

  5. 『BUG』Android Studio 64位 始终提示 JVM 启动不了,JDK配置失败,error code -1

    前几天 安装了 Android Studio 2.2. 本来一切都好,但是当我修改了 配置文件 studio64.exe.vmoptions 想修改 最大内存(保证运行流畅)后,AS 就再也运行不了了 ...

  6. JavaScript(第二十一天)【DOM元素尺寸和位置】

    学习要点: 1.获取元素CSS大小 2.获取元素实际大小 3.获取元素周边大小 本章,我们主要讨论一下页面中的某一个元素它的各种大小和各种位置的计算方式,以便更好的理解.   一.获取元素CSS大小 ...

  7. defaultdict使用及__missing__理解

    import collections import re WORD_RE = re.compile(r'\w+') index = collections.defaultdict(list) #用li ...

  8. Linux进程调度分析

    原文:http://www.2cto.com/os/201112/113229.html 操作系统要实现多进程,进程调度必不可少. 有人说,进程调度是操作系统中最为重要的一个部分.我觉得这种说法说得太 ...

  9. Twisted 介绍 及TCP广播系统实例

    twisted 提供更多传输层 udp,tcp,tls及应用层HTTP,FTP等协议的支持,在开发方法上更提供了丰富的特性来支持异步编程 安装twisted 建议使用anaconda 安装,conda ...

  10. 第二十八条:利用有限制通配符来提升API的灵活性

    如第二十五条所述,参数化类型是不可变的.类型Type1和Type2而言,不管Type1与Type2的关系,List<Type1>既不是List<Type2>的子类型,也不是也不 ...