使用Django快速搭建簡單的數據管理後臺
概述
需求描述:
數據表已建好,能可視化操做增刪改查,避免直接操做數據庫
簡版的管理系統
環境
- Windows 10 x64
- Python 3.6.3 (Anaconda)
- Django 2.0.1
- MySQL 5.6.11-log
安裝Django
pip install django
安裝python-mysql
pip install mysqlclient
建立項目
django-admin startproject myproject
建立應用模塊
cd myproject
python manage.py startapp myapp
配置數據庫鏈接信息
#settings.py
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'testdb',
'USER': 'root',
'PASSWORD': '123456',
'HOST': 'localhost',
'PORT': '3306',
}
}
建立超級用戶
python manage.py createsuperuser
啓動應用
python manage.py runserver #默認8000
#python manage.py runserver 9999
裝載應用模塊
#settings.py
# Application definition
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'myapp',#添加到末尾
]
數據庫反向生成Model
python manage.py inspectdb > myapp/models.py
註冊Model
# myapp/admin.py
from django.contrib import admin
from myapp.models import Post
# Register your models here.
admin.site.register(Post)
解決Django在處理MySQL中BIT類型當作TextField處理問題
安裝django_mysql模塊
pip install django_mysql
# myapp/models.py
#引入django_mysql模塊
from django_mysql.models import Bit1BooleanField
# myapp/models.py
將
models.TextField(blank=True, null=True) # This field type is a guess.
或
models.TextField() # This field type is a guess.
批量替換爲 Bit1BooleanField(default=False)
關閉調試模式
# settings.py
# SECURITY WARNING: don't run with debug turned on in production!
DEBUG = False
# Must set settings.ALLOWED_HOSTS if DEBUG is False
ALLOWED_HOSTS = ['localhost','127.0.0.1','example.com']
靜態資源訪問處理
靜態資源目錄配置
# settings.py
STATIC_URL = '/static/'
STATIC_ROOT = os.path.join(BASE_DIR, 'static') #新增配置
靜態資源訪問地址配置
# urls.py
from django.contrib import admin
from django.urls import path
from django.conf.urls.static import static
from django.conf import settings
urlpatterns = [
path('admin/', admin.site.urls),
]+ static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)
收集應用全部靜態文件至項目static目錄下
python manage.py collectstatic
國際化處理
# settings.py
# 語言
#LANGUAGE_CODE = 'zh-cn'
LANGUAGE_CODE = 'zh-Hans'
# 時區
TIME_ZONE = 'Asia/Shanghai'
USE_TZ = True
頁面表單標籤中文顯示
#models.py
class Post(models.Model):
title = models.CharField('標題', max_length=100)
memo = models.TextField('備註')
publish_date = models.DateTimeField('發表時間')
class Meta:
verbose_name = '文章'
verbose_name_plural = '文章'
ordering = ['publish_date']
def __unicode__(self):
return self.title
其餘命令
#同步數據庫(可將model改動同步到數據庫)
python manage.py makemigrations
python manage.py migrate
#清空數據庫
python manage.py flush
# 修改 用戶密碼能夠用:
python manage.py changepassword username
#導出數據 導入數據
python manage.py dumpdata appname > appname.json
python manage.py loaddata appname.json
#Django 項目環境終端
python manage.py shell
#數據庫命令行
python manage.py dbshell
參考資料