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':'3306',
}
}
urls.py修改如下:
from django.conf.urls import *
fromdjango.contrib import admin
admin.autodiscover()
urlpatterns=[
url(r'^admin/', admin.site.urls),
]
4、生成后臺管理表
在PyCharm 下方“terminal”下輸入
python manage.py migrate
接下來需要創建超級用戶的賬號密碼
python manage.py shellfromdjango.contrib.auth.models import User
user=User.objects.create_superuser('用戶名','郵箱','密碼')
這樣我們就可以進入后臺管理界面了,點擊運行程序,在瀏覽器中輸入:127.0.0.1:8000/admin
登錄后可以創建用戶、組,管理權限,修改密碼等操作。
5、自定義顯示
自定義后臺的顯示需要在models.py 進行修改,可以查看官方文檔進行自定義配置,這里簡要介紹幾項常用的
#coding=UTF-8這里為方便對中文進行編譯from__future__ import unicode_literalsfromdjango.db import models
# Create your models here.
#-*- coding:utf-8 -*-
fromdjango.db import models
# Create your models here.classPublisher(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=30,help_text='Example:172.25.0.0',verbose_name='IP地址',unique=True) #unique=true則此項是全局唯一,不可以重復
STATE= models.CharField(max_length=30,verbose_name='當前狀態',choices=STATE_CHOICES) #choices是以下拉菜單顯示
MODEL= models.CharField(max_length=30, blank=True,verbose_name='型號',choices=MODEL_CHOICES) #verbose_name是網頁的顯示名稱
IDD= models.CharField(max_length=30, blank=True,verbose_name='設備編號') #blank=true則可以不填寫
USER= models.CharField(max_length=30, blank=True,verbose_name='設備使用者')
TEL= models.CharField(max_length=30, verbose_name='聯系方式', blank=True)
LOC= models.CharField(max_length=30, blank=True,verbose_name='設備位置')
NOTE= models.CharField(max_length=30, verbose_name='備注', blank=True)
TIME= models.DateTimeField(auto_now_add=True)
IPMI=models.CharField(max_length=30,help_text='Example:172.25.0.0',verbose_name='IPMI地址',unique=True,blank=True)classMeta:
verbose_name_plural='IP查詢'#這是表的網頁顯示名稱
verbose_name='IP'
下面需要更新數據庫
在terminal終端輸入以下命令
python manage.py makemigrations
python manage.py migrate
最后在admin.py中修改配置
fromdjango.contrib import admin
# Register your models here.fromdjango.contrib.auth.models import UserfromipApp.models import Publisher
#fromipApp.models import Publisher, Author, BookclassPublisherAdmin(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命令。