使用Django快速搭建簡單的數據管理後臺

使用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

參考資料

相關文章
相關標籤/搜索