天天看點

Django實踐筆記Django應用架構注冊清單頁添加,修改頁面fieldsets = #給屬性分組

Django應用架構

安裝Django:

pip install django -i

http://pypi.douban.com/simple

--trusted-host pypi.douban.com

建立Django項目:

django-admin startproject DjangoDemo1

檔案目錄層級說明:

manage.py:一個指令行工具,可以使我們用多種方式對Django項目進行互動

project項目目錄:

init.py:一個空檔案,它告訴python這個目錄應該被看做一個python包

setting.py:項目的配置檔案

urls.py:項目的URL聲明

wsgi.py:項目與WSGI相容的Web伺服器入口

windows安裝mysql:

下載下傳位址:

https://dev.mysql.com/downloads/mysql/

跳過登入直接下載下傳

環境變量:

變量名:MYSQL_HOME

變量值:E:mysql-5.7.20-winx64

以管理者身份運作cmd

進入D:mysql-8.0.12-winx64bin

執行:mysqld --initialize-insecure --user=mysql #會生成目錄下生成data目錄

管理者運作:mysqld -install

啟動服務:

net start MySQL

連接配接:

mysql -u root -p

修改setting.py檔案:

DATABASES = {

'default': {

'ENGINE': 'django.db.backends.mysql',

'NAME': 'sunck',

'USER': 'root',

'PASSWORD': '',

'HOST': 'localhost',

'PORT': '3306'

}

建立:app01

執行 python manage.py startapp app01

在setting中獎app01應用加入INSTALL_APPS選項中

INSTALLED_APPS = [

'django.contrib.admin',

'django.contrib.auth',

'django.contrib.contenttypes',

'django.contrib.sessions',

'django.contrib.messages',

'django.contrib.staticfiles',

'app01'

]

建立模型:model.py檔案中

class Grades(models.Model):

gname = models.CharField(max_length=20)

gdate = models.DateTimeField()

ggirlnum = models.IntegerField()

gboynum = models.IntegerField()

isDelete = models.BooleanField(default=False)

class Students(models.Model):

sname = models.CharField(max_length=20)

sgender = models.BooleanField(default=True)

sage = models.IntegerField()

scontent = models.CharField(max_length=20)

關聯外鍵

sgrade = models.ForeignKey("Grades")

生成資料表在資料庫中:

生成遷移檔案:python manage.py makemigrations #在migrations目錄下生成一個遷移檔案

執行遷移:python manage.py migrate

執行完之後去資料庫中查詢資料,發現表已經生成。

測試資料操作:

進入python shell : python manage.py shell

引入一些包:

from app01.models import Grades,Students

from django.utils import timezone

from datetime import *

查詢所有資料:

Grades.object.all()

添加資料:建立一個模型類的對象執行個體

建立對象

grade1 = Grades()

grade1.gname = "gaojianshuai"

grade1.gdate = datetime(year=2019,month=12,day=9)

grade1.ggirlnum = 3

grade1.gboynum=30

grade1.save()

grade2.gname = "linjiayin"

grade2.ggirlnum = 4

grade2.gboynum=13

grade2.gdate = datetime(year=2020,month=1,day=25)

grade2.save()

檢視某個對象:

Grades.objects.all()

Grades.objects.get(pk=1)

Grades.objects.get(pk=2)

grade2

修改某個屬性:模型對象.屬性 = 新值

grade2.ggirlnum = 555

删除資料:

模型對象.delete() grade2.delete()

啟動伺服器:

python manage.py runserver

admin站點管理:

内容釋出:負責添加、修改、删除内容

配置admin應用:在setting中的INSTALL_APPS中添加'django.contrib.admin',預設是已經添加好的

建立管理者使用者:python manage.py createsuperuser

賬号密碼:sunck 1234567890

通路:127.0.0.1:8000

127.0.0.1:8000/admin

界面漢化:

在setting檔案中修改如下

LANGUAGE_CODE = 'en-us' #修改為zh-Hans

TIME_ZONE = 'Asia/Shanghai'

管理資料表:

通過修改admin.py檔案:

from .models import Grades,Students

注冊

admin.site.register(Grades)

admin.site.register(Students)

自定義管理頁面:

清單頁

list_display = ['pk', 'gname', 'gdate', 'ggirlnum', 'gboynum']#顯示字段

list_filter = ['gname']#過濾字段

search_fields = ['gname']#搜尋字段

list_per_page = 5#分頁

添加,修改頁面

fields = [ 'gname', 'ggirlnum', 'gdate', 'gboynum', 'idDelete']#屬性的先後順序

fieldsets = #給屬性分組

注意:field與fieldset不能同時使用