由于工作需要,接触了大半年时间的Django+xadmin框架,一直没空对这块对进行相关的梳理。最近在同事的怂恿下,就在这分享下笔者的学习及工作经验吧。
好了,话不多说,下面开始进入正题:
环境需求:
笔者的工作系统环境: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,我们熟悉的中文界面呈现在眼前。
好了,不早了,该下班回家了。 下一节,我们将创建模型。
跨平台移动开发phonegap/cordova 3.3全系列教程-开发环境搭建
操作系统:windwos xp 1. 安装JDK 打开如下网站下载JDK http://www.oracle.com/technetwork/java/javase/downloads/index …
Django2.1,Xadmin2.0下的问题记录
此篇博文长期更新…… 环境: Ubuntu18.04, Python3.6, Django2.1, Xadmin2.0 1. Xadmin添加用户小组件时报错:xadmin render() got …
【全网最全的博客美化系列教程】01.添加Github项目链接
全网最全的博客美化系列教程相关文章目录 [全网最全的博客美化系列教程]01.添加Github项目链接 [全网最全的博客美化系列教程]02.添加QQ交谈链接 [全网最全的博客美化系列教程]03.给博客添 …
[大数据从入门到放弃系列教程]在IDEA的Java项目里,配置并加入Scala,写出并运行scala的hello world
[大数据从入门到放弃系列教程]在IDEA的Java项目里,配置并加入Scala,写出并运行scala的hello world 原文链接:http://www.cnblogs.com/blog5277/ …
QT5.6.0 VS2013 Win764位系统QT环境搭建过程
QT5.6.0 VS2013 Win764位系统QT环境搭建过程 没用过QT自己跟同事要了安装包,按照同事指导方法操作安装部署开发环境结果遇到好多问题,错误网上搜遍了所有帖子也没有找到合适的解决方案. …
【转】RHadoop实践系列之一:Hadoop环境搭建
RHadoop实践系列之一:Hadoop环境搭建 RHadoop实践系列文章,包含了R语言与Hadoop结合进行海量数据分析.Hadoop主要用来存储海量数据,R语言完成MapReduce 算法,用来 …
MyBatis学习系列一之环境搭建
目录 MyBatis学习系列一之环境搭建 MyBatis学习系列二——增删改查 MyBatis学习系列三——结合Spring 学习一个新的知识,首先做一个简单的例子使用一下,然后再逐步深入.MyBat …
MyBatis实例教程–开发环境搭建
MyBatis实例教程–开发环境搭建 准备工作: 1.mybatis 的开发环境搭建,选择: eclipse j2ee 版本,mysql 5.1 ,jdk 1.7,mybatis3.2.0.jar包 …
【Python3.6+Django2.0+Xadmin2.0系列教程之二】学生信息管理系统(入门篇)
上一篇我们已经创建好了一个Xadmin的基础项目,现在我们将在此基础上构建一个同样很基础的学生信息管理系统. 一.创建模型 模型是表示我们的数据库表或集合类,并且其中所述类的每个属性是表或集合的字段, …
随机推荐
CentOS 7 网络配置
Virtual box 安装了CentOS 7最小模式后马上用ifconfig命令查看网络情况,发现该命令不存在. [root@centos1 ~]# ifconfig -bash: ifconfig …
Swift学习笔记
swift 面向过程 数据结构 3.1 常量和变量 定义常量和变量 let a = 1 var b = 2 显式定义和隐式定义 无需指定强类型,编译器会自动根据初始值推断出其类型.与c#相似.如果在定 …
Redis学习笔记(8)-发布/订阅
package cn.com; import java.util.List; import redis.clients.jedis.Jedis; public class Redis_PubSub { …
定时器 corn 表达式
一个cron表达式有至少6个(也可能7个)有空格分隔的时间元素.按顺序依次为1.秒(0~59)2.分钟(0~59)3.小时(0~23)4.天(月)(0~31,但是你需要考虑你月的天数)5.月(0~11 …
网易云音乐 歌词制作软件 BesLyric
导读 哈哈,喜欢网易云音乐,又愁于制作歌词的童鞋有福啦! BesLyric 为你排忧解难! 上个周末在用网易云音乐听歌,发现一些喜欢的歌还没有滚动歌词,然而网易云音乐还没有自带的歌词编辑功能,要制作歌 …
为什么 O2O 领域融资额特别高?
在36氪搜索“o2o”,融资额基本都是数千万乃至数亿,为什么这个领域的创业项目融资额如此之高?融到的钱一般用在什么地方? ————————————— …
BZOJ2738矩阵乘法——整体二分+二维树状数组
题目描述 给你一个N*N的矩阵,不用算矩阵乘法,但是每次询问一个子矩形的第K小数. 输入 第一行两个数N,Q,表示矩阵大小和询问组数:接下来N行N列一共N*N个数,表示这个矩阵:再接下来Q行每行5 …
tomcat 配置 使用综合
[参考]Tomcat 7.0安装与配置 [参考]tomcat 控制台日志(startup.bat)输出到指定文件中 [参考]将Java web应用部署到Tomcat 及部署到Tomcat根目录 的三种 …
ef报错:实体类型XXX不是当前上下文的模型的一部分。
可能原因:.net框架版本与实体框架版本不匹配,比如:.net框架版本为4.5.实体框架版本为6.2. 解决方法:将实体框架版本降到6.0.
3.7 C++派生类构造函数调用规则
参考:http://www.weixueyuan.net/view/6364.html 总结: 派生类构造函数可以自动调用基类的默认构造函数而无需显式调用. 生类构造函数可以自动调用基类的默认构造函数 …
今天的文章python3.6 django教程_【Python3.6+Django2.0+Xadmin2.0系列教程一】环境搭建及项目创建分享到此就结束了,感谢您的阅读。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/9714.html