




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、Django快速搭建跨平臺(tái)管理后臺(tái)解放你的生產(chǎn)力 呂召剛 2015/09/01& Django自我介紹Pythonism寫代碼時(shí)間:13年有余開始接觸Python: 2010年此次分享您可以了解到如何用Django在30分鐘開發(fā)出一個(gè)內(nèi)容管理系統(tǒng)如何從數(shù)據(jù)庫表生成包含增、刪、改、查、過濾的Admin管理后臺(tái)Django如何在Model和數(shù)據(jù)庫表間進(jìn)行正向、反向同步如何使得你的web app可以在手機(jī)上訪問如何進(jìn)行權(quán)限控制如何定制導(dǎo)出數(shù)據(jù)功能如何幾分鐘搭建出Rest Service如何使用列模式 (Column Mode)Agenda背景Django簡介實(shí)例演示如何支持移動(dòng)端訪問如何控制權(quán)限如何
2、搭建Rest ServicePython15分鐘簡介:Web Development with Python and DjangoDjango解決了什么問題?Loose coupling 松耦合Less code 盡量少的代碼Quick development 快速開發(fā)Dont repeat yourself (DRY) Django是什么?高度抽象的Python web framework 鼓勵(lì)快速開發(fā),干凈,實(shí)用的設(shè)計(jì)是為有 deadline的理想主義者準(zhǔn)備的聚焦于自動(dòng)化和DRY原則廣泛實(shí)用,大量的插件Django is a MTV framework - Model (app/model
3、s.py)- Template (app/templates/*.html) - View (app/views.py) Django包含哪些功能??MTV框架ORM自動(dòng)的Admin后臺(tái)模版系統(tǒng)基于正則的URL路由緩存國際化命令行工具二、Django簡介背景Django簡介實(shí)例演示如何支持移動(dòng)端訪問如何控制權(quán)限如何搭建Rest ServiceWeb應(yīng)用組件Django 如何工作?Virtualenv創(chuàng)建項(xiàng)目Virtualenv: 一個(gè)項(xiàng)目,一個(gè)虛擬環(huán)境每個(gè)項(xiàng)目有獨(dú)立的依賴包,依賴版本容易部署,避免依賴地獄創(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.強(qiáng)大的墻解決方法,使用國內(nèi)mirror:pip install -i http:/ xlrd激動(dòng)人心的時(shí)刻創(chuàng)建項(xiàng)目django-admin startproject djangodemo運(yùn)行項(xiàng)目cd djangodemopython manage.py runserver :8080瀏覽器訪問項(xiàng)目: http:/localhost:8080/adminOops數(shù)據(jù)庫遷移遷移數(shù)據(jù)庫,用到的model同步到數(shù)據(jù)庫:./mana
6、ge.py migrate創(chuàng)建超級(jí)管理員:./manage.py createsuperuser創(chuàng)建賬號(hào): admin,密碼admin啟動(dòng)服務(wù)./manage.py runserver :8080訪問 http:/localhost:8080/admin生成的管理頁面等等數(shù)據(jù)庫在哪里?頁面怎么出來的?如何管理我自己的model數(shù)據(jù)呢?Django項(xiàng)目結(jié)構(gòu)_init_.py: 包聲明settings.py: 配置文件urls.py: url路由配置Django架構(gòu)Django配置改用Mysql數(shù)據(jù)庫(更改后運(yùn)行 ./manage.py migrate):DATABASES = de
7、fault: ENGINE: django.db.backends.mysql, NAME: django_demo, USER: root, PASSWORD: root, HOST: localhost, PORT: 3306, ,讓我們來添加一個(gè)App創(chuàng)建一個(gè)應(yīng)用(名為attendence):./manage.py startapp attendence把應(yīng)用加到settings.py的配置中mkdir templatesattendence應(yīng)用中的文件models.py: 定義模型,對(duì)應(yīng)數(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: 映射請(qǐng)求的URL到要執(zhí)行的代碼使用正則表達(dá)式匹配每一個(gè)應(yīng)用在各自的module下面可以有自己的u
9、rls.py文件from django.conf.urls import include, urlfrom django.contrib import adminurlpatterns = url(radmin/, include(admin.site.urls),讓我們來添加一個(gè)Model到管理臺(tái)把model注冊到admin管理臺(tái)同步model到數(shù)據(jù)庫./manage.py makemigrations./manage.py migrate (數(shù)據(jù)庫)./manage.py runserver :8080背景Django簡介實(shí)例演示如何支持移動(dòng)端訪問如何控制權(quán)限如何搭建Rest
10、 Service以考勤系統(tǒng)為例:功能需求法定假日表第一次初始化時(shí),周六,周日默認(rèn)為假日;HR批量調(diào)整,加上端午,清明,中秋,國慶,元旦等假期; 年假記錄表,每年年初根據(jù)政策批量生成每一個(gè)員工當(dāng)年的假期數(shù)據(jù),并結(jié)清上一年年假; 超級(jí)管理員可以管理法定假日,部門,部門主管信息,維護(hù)用戶表; 員工可以請(qǐng)假,主管可以審批;請(qǐng)假審核通過時(shí),年假自動(dòng)減少; 可用性需求可以通過PC訪問可以通過手機(jī)訪問設(shè)計(jì)一個(gè)項(xiàng)目的開發(fā)過程1.ERD工具設(shè)計(jì)數(shù)據(jù)庫表2.編寫Model3.編寫Model展現(xiàn)的頁面4.編寫ControllerServlet來實(shí)現(xiàn)增、刪、改、查? Model跟ERD本質(zhì)上有什么區(qū)別?頁面的內(nèi)容跟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、?定義一個(gè)Json結(jié)構(gòu),編寫工具自動(dòng)生成model/sql如何?從Json結(jié)構(gòu)的定義,自動(dòng)生成model, sql原本需要30分鐘的開發(fā),3分鐘搞定!自增鍵、外鍵引用通常Model中不用定義自增鍵ForeignKey定義以后,在添加、修改的form中,可以選擇依賴的實(shí)例verbose_nameverbose_name:用于字段名的顯示若empno未定義verbose_name,頁面上會(huì)顯示”empno”,不顯示“工號(hào)”默認(rèn)列表展示默認(rèn)的列表展示 Holiday object是什么鬼?希望展示出來日期,假期類型,備注,創(chuàng)建者幾個(gè)字段定制列表展示這樣的列表展示如何實(shí)現(xiàn)?只需要指定這樣的列表展示如何
13、實(shí)現(xiàn)?只需要指定list_display即可。即可。model中定義選擇項(xiàng)GENDER_CHOICES=(1,Male),(0,Female),) user_gender = models.IntegerField(choices=GENDER_CHOICES,default=1) 搜索與過濾如何實(shí)現(xiàn)圖中的Search和Filter功能?Search:按照某些指定字段的內(nèi)容進(jìn)行搜索Filter:按照數(shù)據(jù)庫中的數(shù)據(jù)進(jìn)行統(tǒng)計(jì)篩選搜索與過濾class EmployeeAdmin(admin.ModelAdmin): list_filter = (office_city,status,dept1,em
14、ptype,position,) search_fields = (empno,name,email,mobile,)指定可以進(jìn)行過濾篩選的條件,搜索哪些字段;兩行配置實(shí)現(xiàn)了前面一頁圖中的搜索、篩選過濾功能完整的配置admin.py 中配置的指定中配置的指定l列表展示字段: list_displayl搜索字段: search_fieldsl篩選字段: list_filter定制添加/修改Form頁面 分組展示Form的不同內(nèi)容比如添加用戶頁面分組展示內(nèi)容Form內(nèi)容分組展示內(nèi)容較多時(shí),分組展示:按照“基本信息”,“合同信息”。分組展示背景Django簡介實(shí)例演示如何支持移動(dòng)端訪問如何控制權(quán)限如
15、何搭建Rest Service支持移動(dòng)端瀏覽器訪問bootstrap (responsive web)$pip install django-admin-bootstrappedsetting.py installed_apps的最前面加:django_admin_bootstrappedBootstrapped手機(jī)上訪問的效果背景Django簡介實(shí)例演示如何支持移動(dòng)端訪問如何控制權(quán)限如何搭建Rest Service權(quán)限控制功能權(quán)限D(zhuǎn)jango自帶的角色、權(quán)限控制(模塊)login_required, permission_required權(quán)限的定義:權(quán)限的定義:.表示一個(gè)應(yīng)用的某個(gè)模塊權(quán)限;
16、表示一個(gè)應(yīng)用的某個(gè)模塊權(quán)限;如:如: attendence.add_holidayattendence.change_holidayattendence.delete_holiday權(quán)限數(shù)據(jù)權(quán)限自定義Admin類的get_queryset()方法,根據(jù)不同方法,根據(jù)不同用戶獲取用戶獲取不同數(shù)據(jù)不同數(shù)據(jù)對(duì)于對(duì)于不同用戶顯示不同字段不同用戶顯示不同字段/只讀字段只讀字段 (get_fields, get_readonly_fields)ModelAdmin.get_readonly_fields(request, obj=None)背景Django簡介實(shí)例演示如何支持移動(dòng)端訪問如何控制權(quán)限如何搭建
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等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 浙江農(nóng)林大學(xué)《體育統(tǒng)計(jì)學(xué)(含體育測量與評(píng)價(jià))》2023-2024學(xué)年第二學(xué)期期末試卷
- 《歸去來兮辭》教學(xué)設(shè)計(jì) 2023-2024學(xué)年統(tǒng)編版高中語文選擇性必修下冊
- 天津理工大學(xué)中環(huán)信息學(xué)院《有毒有害物質(zhì)檢測》2023-2024學(xué)年第二學(xué)期期末試卷
- 中國美術(shù)學(xué)院《財(cái)務(wù)信息系統(tǒng)》2023-2024學(xué)年第二學(xué)期期末試卷
- 西藏警官高等??茖W(xué)?!度襟w新聞評(píng)論》2023-2024學(xué)年第二學(xué)期期末試卷
- 大連科技學(xué)院《工程項(xiàng)目管理A》2023-2024學(xué)年第二學(xué)期期末試卷
- 廣西工商職業(yè)技術(shù)學(xué)院《制藥分離工程》2023-2024學(xué)年第二學(xué)期期末試卷
- 重慶交通大學(xué)《會(huì)計(jì)信息系統(tǒng)(一)》2023-2024學(xué)年第二學(xué)期期末試卷
- 瀘州四川瀘州市國有土地上房屋征收補(bǔ)償中心(瀘州市物業(yè)管理中心)招聘編外人員筆試歷年參考題庫附帶答案詳解
- 泰州2025年江蘇泰州市第四人民醫(yī)院招聘合同制人員27人筆試歷年參考題庫附帶答案詳解
- ESAP法律英語教程全冊配套優(yōu)質(zhì)教學(xué)課件
- 水資源保護(hù)知識(shí)競賽試題及答案
- 道路清掃保潔-組織機(jī)構(gòu)框架圖、內(nèi)部分工
- PCB制程漲縮系數(shù)操作指引
- 標(biāo)準(zhǔn) DB37T 3690.1-2019 液體菌種制備技術(shù)規(guī)程 第1部分:香菇規(guī)范
- 2021五年級(jí)道德與法治培優(yōu)輔差計(jì)劃3篇
- 靜脈藥物配置中心課件
- 最新2022年減肥食品市場現(xiàn)狀與發(fā)展趨勢預(yù)測
- 發(fā)展?jié)h語初級(jí)綜合1:第30課PPT課件[通用]
- 馬工程西方經(jīng)濟(jì)學(xué)(第二版)教學(xué)課件-(4)
- 醫(yī)療廢物管理組織機(jī)構(gòu)架構(gòu)圖
評(píng)論
0/150
提交評(píng)論