### 服務器
* 運行如下命令可以開啟服務器
~~~
python manage.py runserver ip:port
~~~
* 可以不寫ip,默認端口為8000
* 這是一個純python編寫的輕量級web服務器,僅在開發階段使用
* 服務器成功啟動后,提示如下信息

* 默認端口是8000,可以修改端口
~~~
python manage.py runserver 8080
~~~
* 打開瀏覽器,輸入網址“127.0.0.1:8000”可以打開默認頁面
* 如果修改文件不需要重啟服務器,如果增刪文件需要重啟服務器
* 通過ctrl+c停止服務器
* * * * *
### 管理操作
* 站點分為“內容發布”和“公共訪問”兩部分
* “內容發布”的部分負責添加、修改、刪除內容,開發這些重復的功能是一件單調乏味、缺乏創造力的工作。為此,Django會根據定義的模型類完全自動地生成管理模塊
#### 使用django的管理
* 創建一個管理員用戶
~~~
python manage.py createsuperuser,按提示輸入用戶名、郵箱、密碼
~~~
* 啟動服務器,通過“127.0.0.1:8000/admin”訪問,輸入上面創建的用戶名、密碼完成登錄
* 進入管理站點,默認可以對groups、users進行管理
#### 管理界面本地化
* 編輯settings.py文件,設置編碼、時區
~~~
LANGUAGE_CODE = 'zh-Hans'
TIME_ZONE = 'Asia/Shanghai'
~~~
#### 向admin注冊booktest的模型
* 打開booktest/admin.py文件,注冊模型
~~~
from django.contrib import admin
from models import BookInfo
admin.site.register(BookInfo)
~~~
* 刷新管理頁面,可以對BookInfo的數據進行增刪改查操作
>[warning] 問題:如果在str方法中返回中文,在修改和添加時會報ascii的錯誤
>[success] 解決:在str()方法中,將字符串末尾添加“.encode('utf-8')”
#### 自定義管理頁面
* Django提供了admin.ModelAdmin類
* 通過定義ModelAdmin的子類,來定義模型在Admin界面的顯示方式
~~~
class QuestionAdmin(admin.ModelAdmin):
...
admin.site.register(Question, QuestionAdmin)
~~~
**列表頁屬性**
* list_display:顯示字段,可以點擊列頭進行排序
~~~
list_display = ['pk', 'btitle', 'bpub_date']
~~~
* list_filter:過濾字段,過濾框會出現在右側
~~~
list_filter = ['btitle']
~~~
* search_fields:搜索字段,搜索框會出現在上側
~~~
search_fields = ['btitle']
~~~
* list_per_page:分頁,分頁框會出現在下側
~~~
list_per_page = 10
~~~
**添加、修改頁屬性**
* fields:屬性的先后順序
~~~
fields = ['bpub_date', 'btitle']
~~~
* fieldsets:屬性分組
~~~
fieldsets = [
('basic',{'fields': ['btitle']}),
('more', {'fields': ['bpub_date']}),
]
~~~
#### 關聯對象
* 對于HeroInfo模型類,有兩種注冊方式
* 方式一:與BookInfo模型類相同
* 方式二:關聯注冊
* 按照BookInfor的注冊方式完成HeroInfo的注冊
* 接下來實現關聯注冊
~~~
from django.contrib import admin
from models import BookInfo,HeroInfo
class HeroInfoInline(admin.StackedInline):
model = HeroInfo
extra = 2
class BookInfoAdmin(admin.ModelAdmin):
inlines = [HeroInfoInline]
admin.site.register(BookInfo, BookInfoAdmin)
~~~
可以將內嵌的方式改為表格
~~~
class HeroInfoInline(admin.TabularInline)
~~~
#### 布爾值的顯示
* 發布性別的顯示不是一個直觀的結果,可以使用方法進行封裝
~~~
def gender(self):
if self.hgender:
return '男'
else:
return '女'
gender.short_description = '性別'
~~~
* 在admin注冊中使用gender代替hgender
~~~
class HeroInfoAdmin(admin.ModelAdmin):
list_display = ['id', 'hname', 'gender', 'hcontent']
~~~
~~~
# admin.py
#!usr/bin/python
# -*- coding: utf-8 -*-
from django.contrib import admin
from models import *
# 關聯類的添加
# class HeroInfoInline(admin.StackedInline):
# model = HeroInfo
# extra = 3 # 添加一個圖書時候,添加3個英雄信息
class HeroInfoInline(admin.TabularInline): # 變成表格形式添加
model = HeroInfo
extra = 3 # 添加一個圖書時候,添加3個英雄信息
class BookInfoAdmin(admin.ModelAdmin):
list_display = ['id', 'btitle', 'bpub_date']
list_filter = ['btitle'] # 出現在右側,過濾
search_fields = ['btitle'] # 搜索 支持模糊查詢
list_per_page = 10 # 分頁
fieldsets = [
('base', {'fields': ['btitle']}),
('super', {'fields': ['bpub_date']})
]
inlines = [HeroInfoInline]
admin.site.register(BookInfo, BookInfoAdmin) # 注冊信息
admin.site.register(HeroInfo)
~~~
- 系統編程
- 1.進程
- 1.1.fork
- 1.2.多個進程能否修改全局變量
- 1.3多次fork的問題
- 1.4.進程的創建-multiprocessing
- 1.5.進程的創建-Process子類
- 1.6.進程池Pool
- 1.7.進程間通信--Queue
- 2.線程
- 2.1.多線程-Threading
- 2.2.threading注意點
- 2.3.多線程-共享全局變量
- 2.4.線程和進程的對比
- 2.5.同步
- 2.6.互斥鎖
- 2.7.多線程-非共享數據
- 2.8.死鎖
- 2.9.同步應用
- 2.10.生產者與消費者模式
- 2.11.ThreadLocal
- 2.12.異步
- 2.13.GIL的問題
- 網絡編程
- 1.網絡概述-udp
- 1.1.TCP/IP
- 1.2.端口
- 1.3.ip地址
- 1.4.socket簡介
- 1.5.UDP介紹
- 1.6.udp網絡程序-發送數據
- 1.7.udp網絡程序-發送、接收數據
- 1.8.udp網絡程序-端口問題
- 1.9.udp綁定信息
- 2.0.udp網絡通信過程
- 2.1.udp應用:echo服務器
- 2.2.udp應用:聊天室
- 2.3.udp總結
- 2.4.udp綜合-模擬QQ
- 2.TFTP下載和上傳
- 3.TCP/IP
- 3.1.打開瀏覽器訪問百度的過程
- web服務器
- 1.1.MyWebServer.py
- 1.2.MyWebFramework.py
- 正則
- 1.1.re模塊
- 1.2.字符
- 1.3.原始字符串
- 1.4.表示數量
- 1.5.表示邊界
- 1.6.匹配分組
- 1.7.貪婪和非貪婪
- 數據結構和算法
- 1.引入概念
- 1.1.第一次嘗試
- 1.2.算法的提出
- 1.3.第二次嘗試
- 1.4.算法效率衡量
- 1.5.算法分析
- 1.6.常見時間復雜度
- 1.7.python內置類型性能分析
- 1.8.數據結構
- 2.順序表
- 2.1.順序表的形式
- 2.2.順序表的結構和實現
- 2.3.順序表的操作
- 2.4.python中的順序表
- 3.鏈表
- 3.1.單向鏈表
- 3.2.單向循環鏈表
- 3.3.雙向鏈表
- 4.棧
- 4.1.棧的結構實現
- 5.隊列
- 5.1.隊列的實現
- 5.2.雙端隊列
- 6.排序和搜索
- 6.1.冒泡排序
- 6.2.選擇排序
- 6.3.插入排序
- 6.4.快速排序
- 6.5.哈希排序
- 6.6.歸并排序
- 6.7.常見排序算法效率比較
- 6.8.搜索
- 7.樹與樹算法
- 7.1.二叉樹
- 7.2.二叉樹的遍歷
- 初識Django
- 1.小白
- 2.初次嘗試
- 3.管理站點
- 4.視圖
- 5.模板
- django模型
- 1.定義模型
- 2.模型成員
- 3.模型查詢
- 4.自連接
- django視圖
- django模板
- django高級
- django第三方
- django-git