Pycharm+Django+Python+MySQL开发 后台管理数据库
Django框架十分简单易用,适合搭建个人博客网站。网上有很多教程,大多是关于命令行操作Django,这里分享一些用最新工具进行Django开发过程,主要是PyCharm太强大,不用有点可惜。
第一次写技术开发类的博文,可能抓不到重点,详略也可能失衡,感谢支持。
环境&工具:Windows server 2012 , PyCharm 2016.2.1 , Django 1.10 , Python 2.7 , MySQL Community 5.7.14
0、创建前的配置
安装MySQL,并已设置操作密码
1、创建工程
在PyCharm 中创建新工程,选择Django 工程,输入路径和应用名称,创建工程就好
这是创建后的初始界面
2、创建、操作数据库
PyCharm 可以创建、读写数据库,不过如果想与工程相连,还是需要在工程中用代码连接,单击Database侧边栏(位置随个人喜好设置,默认在右侧),添加Database,如图(图是写博文时补的)。
填写连接信息,Database栏可以填写具体数据库名称,不填写则加载所有数据库。第一次使用PyCharm时会提示设置操作密码,填写完成可以点击“Test Connection” 测试连接情况,没有问题点击“OK”,输入操作密码即可完成连接。
左侧为MySQL目录,如果修改、查看没有找到自己的数据库,点击“more schemes”,如图
可以在命令行直接操作数据库,如图:
双击左侧“table1” ,可以图形化显示数据表。
3、在工程中创建Database,修改配置
到目前为止好像我们还没有写代码(数据库那段是展示PyCharm强大的数据库操作),和老版本不同,在修改settings.py 只需要修改数据库连接配置即可。
settings.py数据库部分修改如下:
- DATABASES = {
- 'default': {
- 'ENGINE': 'django.db.backends.mysql',
- 'NAME': 'ip_db',
- 'USER':'root',
- 'PASSWORD':'root',
- 'HOST':'localhost',
- 'PORT':'',
- }
- }
urls.py修改如下:
- from django.conf.urls import *
- from django.contrib import admin
- admin.autodiscover()
- urlpatterns = [
- url(r'^admin/', admin.site.urls),
- ]
4、生成后台管理表
在PyCharm 下方“terminal”下输入
- python manage.py migrate
接下来需要创建超级用户的账号密码
- python manage.py shell
- from django.contrib.auth.models import User
- user=User.objects.create_superuser('用户名','邮箱','密码')
这样我们就可以进入后台管理界面了,点击运行程序,在浏览器中输入:127.0.0.1:8000/admin
登录后可以创建用户、组,管理权限,修改密码等操作。
5、自定义显示
自定义后台的显示需要在models.py 进行修改,可以查看官方文档进行自定义配置,这里简要介绍几项常用的
- #coding=UTF- 这里为方便对中文进行编译
- from __future__ import unicode_literals
- from django.db import models
- # Create your models here.
- #-*- coding:utf- -*-
- from django.db import models
- # Create your models here.
- class Publisher(models.Model):
- STATE_CHOICES=(
- (u'down',u'设备已关机'),
- (u'up',u'设备开机'),
- (u'avi',u'此IP未分配'),
- )
- MODEL_CHOICES=(
- (u'fwq',u'普通服务器'),
- (u'gmszx',u'高密四子星'),
- (u'ups',u'UPS'),
- (u'ccjd',u'存储节点'),
- (u'others',u'其他'),
- )
- IP = models.CharField(max_length=,help_text='Example:172.25.0.0',verbose_name='IP地址',unique=True) #unique=true则此项是全局唯一,不可以重复
- STATE = models.CharField(max_length=,verbose_name='当前状态',choices=STATE_CHOICES) #choices是以下拉菜单显示
- MODEL = models.CharField(max_length=, blank=True,verbose_name='型号',choices=MODEL_CHOICES) #verbose_name是网页的显示名称
- IDD = models.CharField(max_length=, blank=True,verbose_name='设备编号') #blank=true 则可以不填写
- USER = models.CharField(max_length=, blank=True,verbose_name='设备使用者')
- TEL = models.CharField(max_length=, verbose_name='联系方式', blank=True)
- LOC = models.CharField(max_length=, blank=True,verbose_name='设备位置')
- NOTE = models.CharField(max_length=, verbose_name='备注', blank=True)
- TIME = models.DateTimeField(auto_now_add=True)
- IPMI=models.CharField(max_length=,help_text='Example:172.25.0.0',verbose_name='IPMI地址',unique=True,blank=True)
- class Meta:
- verbose_name_plural='IP查询' #这是表的网页显示名称
- verbose_name='IP'
下面需要更新数据库
在terminal终端输入以下命令
- python manage.py makemigrations
- python manage.py migrate
最后在admin.py中修改配置
- from django.contrib import admin
- # Register your models here.
- from django.contrib.auth.models import User
- from ipApp.models import Publisher
- #from ipApp.models import Publisher, Author, Book
- class PublisherAdmin(admin.ModelAdmin):
- search_fields = ('IP','STATE','MODEL','USER') #根据属性搜索
- list_display=('IP','STATE','USER','TEL') #列表显示的属性
- list_filter = ('STATE',) #筛选
- pass
- admin.site.register(Publisher,PublisherAdmin)
效果如图
修改model后都需要makemigrations命令更新数据库,不过总是报错,目前还没有搞定,所以我在修改models,比如增加列,会在数据库命令行直接使用alter命令添加,这样就不需要使用makemigrations命令。
Pycharm+Django+Python+MySQL开发 后台管理数据库的更多相关文章
- PyCharm Django Python 开发环境配置 详细教程
PyCharm Django Python 开发环境配置 详细教程 1. Python 下载及安装 (1)根据需要的版本去 Python 官网(https://www.python.org/downl ...
- 第一篇:Win10系统搭建Python+Django+Nginx+MySQL 开发环境详解(完美版)
Win10+Python+Django+Nginx+MySQL 开发环境搭建详解 PaulTsao 说明:本文由作者原创,仅供内部参考学习与交流,转载引用请注明出处,用于商业目的请联系作者本人. Wi ...
- Django Python MySQL Linux 开发环境搭建
Django Python MySQL Linux 开发环境搭建 1.安装Python 进行Python开发,首先必须安装python,对于linux 或者Mac 用户,python已经预装. 在命令 ...
- Django基础-003 配置Django自带的后台管理,操作数据库
插入测试数据,可以自己写页面来插入数据 也可以使用Django自带的后台管理,来操作数据表 1.创建用户 python manage.py createsuperuser 2.在浏览器输入地址,进入D ...
- Django:(博客系统)使用使用mysql数据->后台管理tag/post/category的配置
Django后台一般是不需要人为的去开发的,因为django已经通过配置实现哪些模块是后台需要管理,如何排序,列表展示哪些列,列显示名称,是否为空(默认值),过滤条件,分页页数,列表中哪些项可编辑等等 ...
- Django学习day8——admin后台管理和语言适应
Django最大的优点之一,就是体贴的为你提供了一个基于项目model创建的一个后台管理站点admin.这个界面只给站点管理员使用,并不对大众开放. 1. 创建管理员用户 (django) E:\Dj ...
- 使用django的admin的后台管理界面
django的admin后台管理界面是方便我们对数据库操作的 是一个在浏览器显示的 图形化界面数据库操作 我们先在django中的admin中把我们需要在图形化界面中进行操作的表导入进去: 先把m ...
- python测试开发django-13.操作数据库(增删改查)
前言 django的models模块里面可以新增一张表和字段,通常页面上的数据操作都来源于数据库的增删改查,django如何对msyql数据库增删改查操作呢? 本篇详细讲解django操作mysql数 ...
- Python+MySQL开发医院网上预约系统(课程设计)一
一:开发环境的配置 1:桌面环境为cnetos7+python2.7 2:MySQL的安装与配置 1)MySQL的安装 MySQL官方文档: http://dev.mysql.com/doc/mysq ...
随机推荐
- Pulse-code modulation
脉冲编码调制(Pulse Code Modulation,PCM),由A.里弗斯于1937年提出的,这一概念为数字通信奠定了基础,60年代它开始应用于市内电话网以扩充容量,使已有音频电缆的大部分芯线的 ...
- eclipse 重启/打开内置浏览器
重启 Eclipse 重启选项允许用户重启 Eclipse. 我们可以通过点击 File 菜单选择 Restart 菜单项来重启 Eclipse. Eclipse 内置浏览器 Web 浏览器 Ecli ...
- RK3288 make otapackage 出错的问题【转】
本文转载自:http://blog.csdn.net/u010439962/article/details/51734631 Installed file list: out/target/produ ...
- linux文件读写 文件锁、select、poll【转】
本文转载自:http://blog.csdn.net/fansongy/article/details/6853395 一.文件锁 文件锁用于多个用户共同使用或操作同一个文件.有读锁的时候可以再加读锁 ...
- I.MX6 DNS 查看、修改方法
/************************************************************************** * I.MX6 DNS 查看.修改方法 * 说明 ...
- 【IOI 1996】 Network of Schools
[题目链接] 点击打开链接 [算法] 对于第一问,将这个图缩点,输出出度为零的点的个数 对于第二问,同样将这个图缩点,输出入度为零.出度为零的点的个数的最大值 [代码] #include <al ...
- gunicorn部署Flask服务
作为一个Python选手,工作中需要的一些服务接口一般会用Flask来开发. Flask非常容易上手,它自带的app.run(host="0.0.0.0", port=7001)用 ...
- linux文件名乱码时删除或改名的方式(转载)
转自:http://www.linuxsa.cn/when-linux-file-name-topsy-turvy-deleted-or-renamed.html linux文件名乱码时删除或改名的方 ...
- ubuntu安装IDEA和PYCHARM
IDEA和PYCHAR的下载以及安装步骤一样. 1.下载免费学习版本(Community) 2.解压文件到opt文件夹下面sudo tar -zxvf xxx -C /opt 3.进入解压之后的bin ...
- django templates模板
Django templates模板 HTML代码可以被直接硬编码在views视图代码中,虽然这样很容易看出视图是怎么工作的,但直接将HTML硬编码到视图里却并不是一个好主意. 让我们来看一下为什么: ...