版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、Django快速搭建跨平臺管理后臺解放你的生產力 呂召剛 2015/09/01& Django自我介紹Pythonism寫代碼時間:13年有余開始接觸Python: 2010年此次分享您可以了解到如何用Django在30分鐘開發(fā)出一個內容管理系統(tǒng)如何從數(shù)據(jù)庫表生成包含增、刪、改、查、過濾的Admin管理后臺Django如何在Model和數(shù)據(jù)庫表間進行正向、反向同步如何使得你的web app可以在手機上訪問如何進行權限控制如何定制導出數(shù)據(jù)功能如何幾分鐘搭建出Rest Service如何使用列模式 (Column Mode)Agenda背景Django簡介實例演示如何支持移動端訪問如何控制權限如何
2、搭建Rest ServicePython15分鐘簡介:Web Development with Python and DjangoDjango解決了什么問題?Loose coupling 松耦合Less code 盡量少的代碼Quick development 快速開發(fā)Dont repeat yourself (DRY) Django是什么?高度抽象的Python web framework 鼓勵快速開發(fā),干凈,實用的設計是為有 deadline的理想主義者準備的聚焦于自動化和DRY原則廣泛實用,大量的插件Django is a MTV framework - Model (app/model
3、s.py)- Template (app/templates/*.html) - View (app/views.py) Django包含哪些功能??MTV框架ORM自動的Admin后臺模版系統(tǒng)基于正則的URL路由緩存國際化命令行工具二、Django簡介背景Django簡介實例演示如何支持移動端訪問如何控制權限如何搭建Rest ServiceWeb應用組件Django 如何工作?Virtualenv創(chuàng)建項目Virtualenv: 一個項目,一個虛擬環(huán)境每個項目有獨立的依賴包,依賴版本容易部署,避免依賴地獄創(chuàng)建虛擬環(huán)境:$virtualenv -p python2.7 django-demo-e
4、nv激活虛擬環(huán)境:$source django-demo-env/bin/activate依賴管理Dependencies: use pip: pip install django pip install django-admin-bootstrapped pip install xlrd MySQL-pythonSave the dependencies in a requirements.txt file: pip freeze requirements.txt pip install -r requirements.txt pip error$pip install xlrdReadTi
5、meoutError: HTTPSConnectionPool(host=, port=443): Read timed out.強大的墻解決方法,使用國內mirror:pip install -i http:/ xlrd激動人心的時刻創(chuàng)建項目django-admin startproject djangodemo運行項目cd djangodemopython manage.py runserver :8080瀏覽器訪問項目: http:/localhost:8080/adminOops數(shù)據(jù)庫遷移遷移數(shù)據(jù)庫,用到的model同步到數(shù)據(jù)庫:./mana
6、ge.py migrate創(chuàng)建超級管理員:./manage.py createsuperuser創(chuàng)建賬號: admin,密碼admin啟動服務./manage.py runserver :8080訪問 http:/localhost:8080/admin生成的管理頁面等等數(shù)據(jù)庫在哪里?頁面怎么出來的?如何管理我自己的model數(shù)據(jù)呢?Django項目結構_init_.py: 包聲明settings.py: 配置文件urls.py: url路由配置Django架構Django配置改用Mysql數(shù)據(jù)庫(更改后運行 ./manage.py migrate):DATABASES = de
7、fault: ENGINE: django.db.backends.mysql, NAME: django_demo, USER: root, PASSWORD: root, HOST: localhost, PORT: 3306, ,讓我們來添加一個App創(chuàng)建一個應用(名為attendence):./manage.py startapp attendence把應用加到settings.py的配置中mkdir templatesattendence應用中的文件models.py: 定義模型,對應數(shù)據(jù)庫表views.py: 定義viewtemplates: 該目錄存放html模版文件urls.p
8、y: 定義url到view的映射settings.py加了這一條: attendenceLittle about viewsCode that handles requests Other frameworks often call these “controllers” Basically a function that: gets a request passed to it returns text or a response Little about views簡化URLsurls.py: 映射請求的URL到要執(zhí)行的代碼使用正則表達式匹配每一個應用在各自的module下面可以有自己的u
9、rls.py文件from django.conf.urls import include, urlfrom django.contrib import adminurlpatterns = url(radmin/, include(admin.site.urls),讓我們來添加一個Model到管理臺把model注冊到admin管理臺同步model到數(shù)據(jù)庫./manage.py makemigrations./manage.py migrate (數(shù)據(jù)庫)./manage.py runserver :8080背景Django簡介實例演示如何支持移動端訪問如何控制權限如何搭建Rest
10、 Service以考勤系統(tǒng)為例:功能需求法定假日表第一次初始化時,周六,周日默認為假日;HR批量調整,加上端午,清明,中秋,國慶,元旦等假期; 年假記錄表,每年年初根據(jù)政策批量生成每一個員工當年的假期數(shù)據(jù),并結清上一年年假; 超級管理員可以管理法定假日,部門,部門主管信息,維護用戶表; 員工可以請假,主管可以審批;請假審核通過時,年假自動減少; 可用性需求可以通過PC訪問可以通過手機訪問設計一個項目的開發(fā)過程1.ERD工具設計數(shù)據(jù)庫表2.編寫Model3.編寫Model展現(xiàn)的頁面4.編寫ControllerServlet來實現(xiàn)增、刪、改、查? Model跟ERD本質上有什么區(qū)別?頁面的內容跟m
11、odel/ERD 是否一樣?為什么要寫代碼去做增、刪、改、查?Model Database 雙向同步models.pyMySQLmodels.pyMySQL./manage.py migrate./manage.py inspectdb列模式常用的編輯器都有列模式Sublime/TextMate/Notepad+/vim/emacsEclipse/idea/word/按列編輯文本按列粘貼TextMate: AltNotepad+: Alt + Mouse selectVIM: Ctrl + V, Shift + i, Esc反思為什么要通過人工去拷貝、列模式粘貼來生成model/數(shù)據(jù)庫表sql
12、?定義一個Json結構,編寫工具自動生成model/sql如何?從Json結構的定義,自動生成model, sql原本需要30分鐘的開發(fā),3分鐘搞定!自增鍵、外鍵引用通常Model中不用定義自增鍵ForeignKey定義以后,在添加、修改的form中,可以選擇依賴的實例verbose_nameverbose_name:用于字段名的顯示若empno未定義verbose_name,頁面上會顯示”empno”,不顯示“工號”默認列表展示默認的列表展示 Holiday object是什么鬼?希望展示出來日期,假期類型,備注,創(chuàng)建者幾個字段定制列表展示這樣的列表展示如何實現(xiàn)?只需要指定這樣的列表展示如何
13、實現(xiàn)?只需要指定list_display即可。即可。model中定義選擇項GENDER_CHOICES=(1,Male),(0,Female),) user_gender = models.IntegerField(choices=GENDER_CHOICES,default=1) 搜索與過濾如何實現(xiàn)圖中的Search和Filter功能?Search:按照某些指定字段的內容進行搜索Filter:按照數(shù)據(jù)庫中的數(shù)據(jù)進行統(tǒng)計篩選搜索與過濾class EmployeeAdmin(admin.ModelAdmin): list_filter = (office_city,status,dept1,em
14、ptype,position,) search_fields = (empno,name,email,mobile,)指定可以進行過濾篩選的條件,搜索哪些字段;兩行配置實現(xiàn)了前面一頁圖中的搜索、篩選過濾功能完整的配置admin.py 中配置的指定中配置的指定l列表展示字段: list_displayl搜索字段: search_fieldsl篩選字段: list_filter定制添加/修改Form頁面 分組展示Form的不同內容比如添加用戶頁面分組展示內容Form內容分組展示內容較多時,分組展示:按照“基本信息”,“合同信息”。分組展示背景Django簡介實例演示如何支持移動端訪問如何控制權限如
15、何搭建Rest Service支持移動端瀏覽器訪問bootstrap (responsive web)$pip install django-admin-bootstrappedsetting.py installed_apps的最前面加:django_admin_bootstrappedBootstrapped手機上訪問的效果背景Django簡介實例演示如何支持移動端訪問如何控制權限如何搭建Rest Service權限控制功能權限Django自帶的角色、權限控制(模塊)login_required, permission_required權限的定義:權限的定義:.表示一個應用的某個模塊權限;
16、表示一個應用的某個模塊權限;如:如: attendence.add_holidayattendence.change_holidayattendence.delete_holiday權限數(shù)據(jù)權限自定義Admin類的get_queryset()方法,根據(jù)不同方法,根據(jù)不同用戶獲取用戶獲取不同數(shù)據(jù)不同數(shù)據(jù)對于對于不同用戶顯示不同字段不同用戶顯示不同字段/只讀字段只讀字段 (get_fields, get_readonly_fields)ModelAdmin.get_readonly_fields(request, obj=None)背景Django簡介實例演示如何支持移動端訪問如何控制權限如何搭建
17、Rest ServiceDjango REST serviceInstall djangorestframeworkpip install djangorestframework pip install markdown # Markdown support for the browsable API.pip install django-filter # Filtering supportAdd rest_framework to your INSTALLED_APPS setting:urls.pyDont forget to make sure youve also added rest_framework to your INSTALLED_APPS. Were ready to create our API now. Heres our projects root urls.py module: Test django rest# json service :8000/
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 15MW農光互補發(fā)電項目-接入系統(tǒng)設計報告
- 2024年二級造價師考試題庫4
- 第05課 網絡協(xié)議分層設 教學設計 2024-2025學年人教版(2024)初中信息技術七年級全一冊
- 商貿公司進貨合同范例
- 鄭州餐飲連鎖加盟合同范例
- 寫字樓商鋪招租合同范例
- 電瓶定采購合同范例
- 以店面入股合同范例
- 園林購樹合同范例
- 土地合作建設合同范例
- 氯氫處理裝置工藝
- 生物工程論文 年產6萬噸11°P啤酒廠發(fā)酵車間工藝設計
- 通力電梯KCE電氣系統(tǒng)學習指南
- windows7 操作系統(tǒng)
- 門窗施工組織設計與方案
- 鋼筋統(tǒng)計表(插圖有尺寸)
- 食品安全管理體系培訓系列教材(共44頁).ppt
- 世界各地的新年習俗(課堂PPT)
- 生物礦化與仿生材料的研究現(xiàn)狀及展望
- JJF 1827-2020水泥細度負壓篩析儀校準規(guī)范
- 物業(yè)項目月度績效考核表格
評論
0/150
提交評論