Django 3.0 入門與實踐
李健
買這商品的人也買了...
-
$450$405 -
$594$564 -
$505Flutter 實戰
-
$356Django 項目開發實戰
-
$880$748 -
$204精通 Django 3 Web 開發
-
$780$616 -
$512Django 實戰 Python Web 典型模塊與項目開發
-
$474$450 -
$780$616 -
$980$774 -
$550$435 -
$559Django 開發入門與項目實戰
-
$356計算機組成原理 (微課版)
-
$780$616 -
$354$336 -
$294$279 -
$779$740 -
$580$458 -
$447Django 3 項目實例精解
-
$480$408 -
$780$663 -
$653Pandas 數據預處理詳解
-
$602深入理解 Django:框架內幕與實現原理
-
$780$616
相關主題
商品描述
本書是一線程序員多年開發經驗的結晶。
書中深入淺出地講解了使用Django開發Web網站所需的配置、後台、路由系統、模型、視圖、模板、表單系統、中間件、自動化測試、國際化及本地化、安全和部署等內容,幫助讀者快速進入Web項目開發,在項目實踐中靈活應用各種開發技術和方法。
本書主要包含四部分:
第一部分(第1章)為讀者介紹Django的發展狀況以及如何搭建Django開發環境;
第二部分(第2章)主要介紹什麽是Web開發框架並通過搭建一個簡單的Web框架幫助讀者理解Web框架的工作原理;
第三部分(第3章)帶領讀者搭建一個網站,使讀者能夠從整體上瞭解Django;
第四部分(第4~16章)詳細介紹Django各個模塊的工作原理,通過學習這部分內容,讀者將能夠獨立開發Django應用。
本書可供Web開發初中級讀者以及希望使用Python作為編程語言的軟件開發工程師參考。
作者簡介
李健,高級自動化開發工程師,持續集成開發工程師,擁有多年軟件開發經驗,以及豐富的Web開發經驗,擅長ASP.NET相關技術。
熟練掌握Python和Django框架,Jenkins以及持續集成。
目前重點關注Python語言、數據挖掘等領域。
目錄大綱
封面
版權頁
內容簡介
作者簡介
前言Foreword
第1章走進Django的世界
1.1認識Django
1.2版本選擇
1.3搭建開發環境
1.3.1安裝Python
1.3.2安裝Django
第2章Web開發框架
2.1 Socket編程
2.2 MTV框架
第3章搭建第一個Django網站
3.1創建項目
3.2運行項目
3.3創建投票應用
3.4開發第一個視圖
3.5配置數據庫
3.6創建模型
3.7激活模型
3.8 Django管理頁面
3.9向管理頁面中添加投票應用
3.10添加視圖
3.10. 1擴展視圖
3.10.2處理404錯誤
3.11使用模板系統
3.11.1模板中的超鏈接
3.11.2為超鏈接添加命名空間
3.12 HTML表單
3.13添加樣式
3.14本地化
3.15小結
第4章django-admin和manage.py
4.1 help
4.2 version
4.3 check
4.4 compilemessages
4.5 createcachetable
4.6 dbshell
4.7 diffsettings
4.8 dumpdata
4.9 flush
4.10 inspectdb
4.11 loaddata
4.12 makemessages
4.13 startproject
4.14 startapp
4.15 runserver
4.16 sendtestemail
4.17 shell
4.18遷移
4.18.1 makemigrations
4.18.2 migrate
4.18.3 sqlmigrate
4.18.4 showmigrations
4.19 changepassword
4.20 createsuperuser
4.21 collectstatic
4.22 findstatic
4.23默認選項
第5章配置
5.1 Django配置文件
5.1.1引用Django配置信息
5.1.2 django.setup
5.2 Cache
5.2.1 CACHES
5.2.2 CACHE_MIDDLEWARE_ALIAS:
5.2.3 CACHE_MIDDLEWARE_KEY_PREFIX:
5.2.4 CACHE_MIDDLEWARE_SECONDS :
5.3數據庫
5.3.1 DATABASES
5.3.2 DATABASE_ROUTERS
5.3.3 DEFAULT_INDEX_TABLESPACE
5.3.4 DEFAULT_TABLESPACE
5.4調試
5.4.1 DEBUG
5.4.2 DEBUG_PROPAGATE_EXCEPTIONS
5.5電子郵件
5.5.1 ADMINS
5.5.2 DEFAULT_FROM_EMAIL
5.5.3 EMAIL_BACKEND
5.5.4 EMAIL_HOST
5.5.5 EMAIL_HOST_USER
5.5.6 EMAIL_HOST_PASSWORD
5.5.7 EMAIL_PORT
5.5.8 EMAIL_TIMEOUT
5.5.9 SERVER_EMAIL
5.5.10 MANAGERS
5.6文件上傳
5.6.1 DEFAULT_FILE_STORAGE
5.6.2 FILE_CHARSET
5.6.3 FILE_UPLOAD_HANDLERS
5.6.4 FILE_UPLOAD_MAX_MEMORY_SIZE
5.6.5 FILE_UPLOAD_PERMISSIONS
5.6.6 FILE_UPLOAD_DIRECTORY_PERMISSIONS
5.6.7 FILE_UPLOAD_TEMP_DIR
5.6.8 MEDIA_ROOT
5.6.9 MEDIA_URL
5.6.10靜態文件
5.7表單
5.7.1 FORM_RENDERER
5.8國際化(i18n/l10n)
5.8.1 DECIMAL_SEPARATOR
5.8.2 NUMBER_GROUPING
5.8.3 THOUSAND_SEPARATOR
5.8.4 USE_THOUSAND_SEPARATOR
5.8.5 FIRST_DAY_OF_WEEK
5.8.6 DATE_FORMAT
5.8.7 DATE_INPUT_FORMATS
5.8.8 DATETIME_FORMAT
5.8.9 SHORT_DATE_FORMAT
5.8.10 SHORT_DATETIME_FORMAT
5.8.11 DATETIME_INPUT_FORMATS
5.8.12 TIME_FORMAT
5.8.13 TIME_INPUT_FORMATS
5.8. 14 YEAR_MONTH_FORMAT
5.8.15 MONTH_DAY_FORMAT
5.8.16 TIME_ZONE
5.8.17 LANGUAGE_CODE
5.8.18 LANGUAGE_COOKIE_AGE
5.8.19 LANGUAGE_COOKIE_DOMAIN
5.8.20 LANGUAGE_COOKIE_NAME
5.8.21 LANGUAGE_COOKIE_PATH
5.8.22 LANGUAGES
5.8.23 LANGUAGES_BIDI
5.8.24 LOCALE_PATHS
5.8.25 USE_I18N
5.8.26 USE_L10N
5.8.27 USE_TZ
5.8.28 Python datetime語法
5.9 HTTP
5.9.1 DATA_UPLOAD_MAX_MEMORY_SIZE
5.9.2 DATA_UPLOAD_MAX_NUMBER_FIELDS
5.9.3 DEFAULT_CHARSET
5.9.4 DISALLOWED_USER_AGENTS
5.9.5 FORCE_SCRIPT_NAME
5.9. 6 INTERNAL_IPS
5.9.7 SECURE_BROWSER_XSS_FILTER
5.9.8 SECURE_CONTENT_TYPE_NOSNIFF
5.9.9 SECURE_HSTS_INCLUDE_SUBDOMAINS
5.9.10 SECURE_HSTS_PRELOAD
5.9.11 SECURE_HSTS_SECONDS
5.9.12 SECURE_PROXY_SSL_HEADER
5.9.13 SECURE_REDIRECT_EXEMPT
5.9.14 SECURE_REFERRER_POLICY
5.9.15 SECURE_SSL_HOST
5.9.16 SECURE_SSL_REDIRECT
5.9.17 SIGNING_BACKEND
5.9.18 WSGI_APPLICATION
5.10安全
5.10.1 SECRET_KEY
5.10.2 ALLOWED_HOSTS
5.11 CSRF
5.11.1 CSRF_COOKIE_AGE
5.11.2 CSRF_COOKIE_DOMAIN
5.11.3 CSRF_COOKIE_HTTPONLY
5.11.4 CSRF_COOKIE_NAME
5.11. 5 CSRF_COOKIE_PATH
5.11.6 CSRF_COOKIE_SAMESITE
5.11.7 CSRF_COOKIE_SECURE
5.11.8 CSRF_USE_SESSIONS
5.11.9 CSRF_FAILURE_VIEW
5.11.10 CSRF_HEADER_NAME
5.11.11 CSRF_TRUSTED_ORIGINS
5.11.12代碼示例
5.12模型
5.12.1 ABSOLUTE_URL_OVERRIDES
5.12.2 FIXTURE_DIRS
5.12.3 INSTALLED_APPS
5.13日誌
5.13.1 LOGGING
5.13.2 LOGGING_CONFIG
5.14模板
5.14.1 TEMPLATES
5.15 URLs
5.15.1 ROOT_URLCONF
5.15.2 APPEND_SLASH
5.15.3 PREPEND_WWW
5.16其他
5.16.1 DEFAULT_EXCEPTION_REPORTER_FILTER
5.16. 2 MIDDLEWARE
第6章後台管理頁面
6.1 ModelAdmin屬性
6.1.1 date_hierarchy
6.1.2 actions_on_top/actions_on_bottom
6.1.3 actions_selection_counter
6.1.4 empty_value_display
6.1.5 exclude
6.1.6 fields
6.1.7 fieldsets
6.1.8 filter_horizontal
6.1.9 filter_vertical
6.1.10 form
6.1.11 formfield_overrides
6.1.12 inlines
6.1.13 list_display
6.1.14 list_display_links
6.1.15 list_editable
6.1.16 list_filter
6.1.17 list_per_page
6.1.18 list_max_show_all
6.1.19 list_select_related
6.1. 20 ordering
6.1.21 paginator
6.1.22 prepopulated_fields
6.1.23 preserve_filters
6.1.24 radio_fields
6.1.25 autocomplete_fields
6.1.26 raw_id_fields
6.1.27 readonly_fields
6.1.28 save_as
6.1.29 save_as_continue
6.1.30 save_on_top
6.1.31 search_fields
6.1.32 show_full_result_count
6.1.33 sortable_by
6.1.34 view_on_site
6.1.35自定義模板
6.2 ModelAdmin方法
6.2.1 save_model
6.2.2 delete_model
6.2.3 delete_queryset
6.2.4 save_formset
6.2.5 get_ordering
6.2.6 get_search_results( )
6.2.7 save_related
6.2.8 get_autocomplete_fields
6.2.9 get_readonly_fields
6.2.10 get_prepopulated_fields
6.2.11 get_list_display
6.2.12 get_list_display_links
6.2.13 get_exclude
6.2.14 get_fields
6.2.15 get_fieldsets
6.2.16 get_list_filter
6.2.17 get_list_select_related
6.2.18 get_search_fields
6.2.19 get_sortable_by
6.2.20 get_inline_instances
6.2.21 get_inlines
6.2.22 get_urls
6.2.23 get_form
6.2.24 get_formsets_with_inlines
6.2.25 formfield_for_foreignKey
6.2.26 formfield_for_manytomany
6.2.27 formfield_for_choice_field
6.2.28 get_changelist
6.2. 29 get_changelist_form
6.2.30 get_changelist_formset
6.2.31 lookup_allowed
6.2.32 has_view_permission
6.2.33 has_add_permission
6.2.34 has_change_permission
6.2.35 has_delete_permission
6.2.36 has_module_permission
6.2.37 get_queryset
6.2.38 message_user
6.2.39 get_paginator
6.2.40 response_add
6.2.41 response_change
6.2.42 response_delete
6.2.43 get_changeform_initial_data
6.2.44 get_deleted_objects
6.2.45 add_view
6.2.46 change_view
6.2.47 changelist_view
6.2.48 delete_view
6.2. 49 history_view
6.3 ModelAdmin資源
6.3.1 jQuery
6.4定制驗證功能
6.5 InlineModelAdmin
6.5.1 InlineModelAdmin.model
6.5.2 InlineModelAdmin.fk_name
6.5.3 InlineModelAdmin.formset
6.5.4 InlineModelAdmin.form
6.5.5 InlineModelAdmin.classes
6.5.6 InlineModelAdmin.extra
6.5.7 InlineModelAdmin.max_num
6.5.8 InlineModelAdmin.min_num
6.5.9 InlineModelAdmin.raw_id_fields
6.5.10 InlineModelAdmin.template
6.5.11 InlineModelAdmin.verbose_name
6.5.12 InlineModelAdmin.verbose_name_plural
6.5.13 InlineModelAdmin.can_delete
6.5. 14 InlineModelAdmin.show_change_link
6.5.15 InlineModelAdmin.get_formset(request, obj=None, **kwargs)
6.5.16 InlineModelAdmin.get_extra(request, obj=None, **kwargs)
6.5.17 InlineModelAdmin.get_max_num(request, obj=None , **kwargs)
6.5.18 InlineModelAdmin.get_min_num(request, obj=None, **kwargs)
6.5.19 InlineModelAdmin.has_add_permission(request, obj)
6.5.20 InlineModelAdmin.has_change_permission(request, obj=None)
6.5.21 InlineModelAdmin.has_delete_permission(request, obj=None)
6.5.22使用中間模型處理ManyToMany關係
6.6重寫管理後台模板
6.6.1新建管理後台模板
6.6. 2重寫與替換
6.6.3可重寫模板
6.6.4根模板和登錄模板
6.7 AdminSite
6.7.1重寫AdminSite
6.7.2多管理後台的實現
第7章路由系統
7.1 Django處理HTTP請求的流程
7.2 URLconf示例
7.3 URL參數類型轉化器
7.4自定義URL參數類型轉化器
7.5使用正則表達式
7.6導入其他URLconf
7.7向視圖傳遞額外參數
7.8動態生成URL
7.9 URL名字和命名空間
第8章模型
8.1模型簡介
8.2使用模型
8.3字段
8.3.1 AutoField
8.3.2 BigAutoField
8.3.3 BinaryField
8.3.4 BooleanField
8.3.5 CharField
8.3.6 DateField
8.3.7 DateTimeField
8.3.8 DecimalField
8.3.9 EmailField
8.3.10 FileField
8.3.11 FilePathField
8.3.12 FloatField
8.3. 13 ImageField
8.3.14 IntegerField
8.3.15 GenericIPAddressField
8.3.16 PositiveIntegerField
8.3.17 PositiveSmallIntegerField
8.3.18 SlugField
8.3.19 SmallIntegerField
8.3.20 TextField
8.3.21 TimeField
8.3.22 URLField
8.3.23 UUIDField
8.4字段參數
8.4.1 null
8.4.2 blank
8.4.3 choices
8.4.4 default
8.4.5 help_text
8.4.6 primary_Key
8.4.7 unique
8.4.8 verbose_name
8.5表與表之間關係
8.5.1多對一關係
8.5.2多對多關係
8.5.3一對一關係
8.6模型元屬性
8.7元屬性
8.7.1 abstract
8.7.2 app_label
8.7.3 base_manager_name
8.7.4 db_table
8.7.5 get_latest_by
8.7.6 order_with_respect_to
8.7.7 ordering
8.7.8 Indexes
8.7 .9 constraints
8.7.10 verbose_name
8.7.11 verbose_name_plural
8.8 Manager類
8.8.1自定義Manager類
8.8.2直接執行SQL語句
8.8.3執行存儲過程
8.9數據增刪改查
8.10數據操作進階——QuerySets
8.10.1創建對象
8.10.2修改對象
8.10.3更新ForeignKey
8.10.4更新ManyToManyField
8.10.5數據查詢
8.10.6鍊式過濾器
8.10.7查詢條件
8.10.8模型深度檢索
8.10.9多條件查詢
8.10.10主鍵查詢
8.10.11查詢條件中的%和_
8.10.12 F()函數
8.10.13 Func()表達式
8.10.14 QuerySet和緩存
8.10.15複雜查詢與Q對象
8.10.16模型比較
8.10.17複製模型實例
8.10.18批量更新
8.10.19模型關係
第9章視圖
9.1視圖結構
9.2 HTTP狀態處理
9.3快捷方式
9.3.1 render_to_string()
9.3.2 render()
9.3.3 redirect()
9.3.4 get_object_or_404()
9.3.5 get_list_or_404()
9.4視圖裝飾器
9.4.1 HTTP方法裝飾器
9.4.2 GZip壓縮
9.4.3 Vary
9.4.4緩存
9.5 Django內置視圖
9.5.1 serve
9.5.2錯誤視圖
9.6 HttpRequest對象
9.6.1屬性
9.6.2中間件屬性
9.6.3方法
9.6.4 QueryDict對象
9.7 HttpResponse對象
9.7.1屬性
9.7.2方法
9.7.3 HttpResponse子類
9.7.4 JsonResponse
9.7.5 FileResponse
9.8 TemplateResponse對象
9.8.1 SimpleTemplateResponse對象
9.8.2 TemplateResponse對象
9.8.3 TemplateResponse對象渲染過程
9.8.4回調函數
9.8.5使用TemplateResponse對象
9.9文件上傳
9.9.1單一文件上傳
9.9.2多文件上傳
9.9.3臨時文件
9.10類視圖
9.10.1類視圖入門
9.10.2繼承類視圖
9.11通用視圖
9.11.1通用視圖
9.11.2修改通用視圖屬性
9.11.3添加額外的上下文對象
9.11.4 queryset屬性
9.11.5動態過濾
9.11.6通用視圖與模型
9.12表單視圖
9.12.1編輯表單視圖
9.12.2當前用戶
第10章模板
10.1加載模板
10.2模板語言
10.2.1變量
10.2.2標籤
10.2.3人性化語義標籤
10.2.4過濾器
10.2.5註釋
10.3自定義標籤和過濾器
10.3.1編寫自定義過濾器
10.3.2編寫自定義標籤
10.4模板繼承
第11章表單系統
11.1 Form類
11.2表單字段類型
11.3表單字段通用屬性
11.4表單與模板
第12章中間件
12.1緩存中間件
12.2通用中間件
12.3 GZip中間件
12.4有條件的GET中間件
12.5語言環境的中間件
12.6消息中間件
12.7安全中間件
12.8會話中間件
12.9站點中間件
12.10身份驗證中間件
12.11 CSRF保護中間件
12.12 X-Frame-Options中間件
12.13中間件排序
12.14開發中間件
第13章自動化測試
13.1編寫第一個測試用例
13.2執行測試用例
13.3修改代碼中的bug
13.4邊界值測試
13.5測試自定義視圖
13.6測試DetailView
第14章國際化和本地化
14.1名詞解釋
14.2翻譯概述
14.3在Python中進行國際化
14.3.1註釋
14.3.2空操作
14.3.3複數
14.3.4上下文標記
14.3.5延遲翻譯
14.3.6本地化的語言名
14.4編寫模板代碼
14.4.1 trans
14.4.2 blocktrans
14.4.3註釋
14.5翻譯原理
第15章安全
15.1網絡攻擊與保護
15.1.1跨站腳本攻擊
15.1.2跨站請求偽造攻擊
15.1.3 SQL注入
15.1.4點擊劫持
15.2檢查配置信息
第16章部署
16.1 WSGI和Application對象
16.2 Ubuntu部署Django
16.2.1查看系統版本
16.2.2更換國內源
16.2.3查看Python版本
16.2.4安裝pip3
16.2.5安裝nginx
16.2.6安裝Django
16.2.7安裝uwsgi
16.2.8命令行運行網站
16.2.9配置uwsgi
16.2.10配置nginx
16.2.11啟動網站
16.2. 12設置靜態文件
16.2.13自啟動服務
16.3 CentOS部署Django
16.3.1查看系統版本
16.3.2更換國內源
16.3.3更新Python
16.3.4安裝Django
16.3.5安裝uwsgi
16.3.6命令行運行網站
16.3. 7配置uwsgi
16.3.8安裝nginx
16.3.9自啟動服務
附錄A語言碼
附錄B日期格式化字符串