1. 程式人生 > >django框架概述

django框架概述

界面 sha base dir 部分 inf ack sgi 腳本

------------------MVC與MVT框架-------------------
1、MVC MVC框架的核心思想是:解耦。降低各功能模塊之間的耦合性,方便將來變化時,更容易重構代碼,最大程度上實現代碼的重用。m表示model,重要用於對數據層的封裝;v表示view,用於向用戶展示結果;c表示controller,是核心,用於處理請求、獲取數據、返回結果。 2、MVT Django是一款分層框架,用於使用python進行web開發,與MVC所不同,屬於MVT框架。m表示model,負責與數據庫交互,v表示view,是核心,負責接收請求、獲取數據、返回結果;t表示template,負責呈現內容到流程器。
-------------------環境搭建------------------- 1、Linux下創建虛擬環境 1、mkvirtualenv [虛擬環境名稱]:創建 2、rmvirtualenv [虛擬環境名稱]:刪除 3、workon:查看當前虛擬環境list 4、workon [虛擬環境名稱]:進入對應的虛擬環境 5、deactivate:退出 6、所有的虛擬環境都位於/home/.virtualenvs目錄下 7、pip list/pip freeze:查看當前虛擬環境中所安裝的包 2、安裝django 1、建議安裝1.8.2版本:
2、安裝指令: pip install django==1.8.2 3、查看安裝版本 import django django.get_version() 3、創建項目 1、創建指令: django-admin startproject [項目名稱] 2、目錄中文件的說明 4、目錄說明 1、manage.py:一個命令行工具,可以使你用多種方式對django項目進行交換 2、內置的目錄:項目的真正的python包 3、__init__.py:一個空文件,它告訴python這個目錄應該被看做一個python包
4、setting.py:項目的配置 5、urls.py:項目的URL聲明 6、wsgi.py:項目與WSGI兼容的web服務器入口 -------------------定義模型------------------- 1、數據庫配置 1、在setting.py文件中,通過DATABASES項進行數據庫設置。 2、django支持的數據庫包括:sqlite、mysql等主流數據庫。 3、Django默認使用SQLite數據庫。 2、創建應用 1、創建應用的命令 python manage.py startapp [應用的名稱]。 2、定義模型類 1、有一個數據表,就有一個模型類與之對應。 2、打開models.py文件,定義模型類。 3、引入包from django.db import models。 4、模型類繼承自models.Model類。 5、說明:不需要定義主鍵列,在生成時會自動添加,並且值為自增長。 6、當輸出對象時,會調用對象的str方法。 3、生成數據表 1、激活模型: 編輯setting.py文件,將[引用的名稱]加入到installed_apps中 2、生成遷移文件: python manage.py makemigrations 3、遷移文件被生成到migrations目錄中 4、執行遷移: python manage.py migrate 4、測試數據操作 1、進入python shell 中: python manage.py shell 2、引入對應的包 1、from [應用的名稱].models import [模塊的名稱] 2、from django.utils import timezone 3、from datetime import * 3、對應的測試指令 1、[模塊的名稱].objects.all():數據的查詢 2、[模塊的名稱].objects.get(pk=1):指定主鍵條件進行查詢 3、model = [模塊的名稱]():創建一個對象 4、model.save():進程對應數據向數據庫的存儲 5、model.delete():刪除這條數據 6、model.heroinfo_set.all():獲取到指定對象所關聯的HeroInfo表中的信息 -------------------使用後臺進行數據庫的管理------------------- 1、服務器 1、開啟服務器指令 python manage.py runserver 2、服務器默認端口8000,修改服務器端口為8080 python manage.py runserver 8080 3、註意 1、修改文件不需要重啟服務器,增加、刪除文件需要重啟服務器 2、ctrl+c停止服務器 2、管理操作 1、使用django的管理: 1、創建一個管理員用戶 python manage.py createsuperuser 2、瀏覽器連接後臺: 通過127.0.0.1:8000/admin;進行對後臺管理界面的訪問。 3、進入管理站點,默認可以對group、users進行管理 2、管理界面本地化: 1、編輯settings.py文件,設置編碼、時區 2、編碼: LANGUAGE_CODE = ‘zh-Hans‘ 3、時區: TIME_ZONE = ‘Asia/Shanghai‘ 3、向admin註冊[應用的名稱]的模型 1、from django.contrib import admin 2、from models import BootInfo:引用模塊中的對應數據表包 3、admin.site.register(BookInfo):進行指定數據的註冊操作 4、自定義管理界面 class QuestionAdmin(admin.ModelAdmin): list_display = [‘pk‘,‘btitle‘,‘bpub_date‘] admin.site.register(Question,QuestionAdmin) 2、列表頁屬性: 1、list_display:顯示字段,可以點擊列頭進行排序 list_display = [‘pk‘,‘btitle‘,‘bpub_date‘] 2、list_filter:過濾字段,過濾框會出現在右側 list_filter = [‘btitle‘] 3、search_fields:搜索字段,搜索框會出現在上側 search_fields = [‘bible‘] 4、list_per_page:分頁,分頁框會出現在下側 list_per_page = 10 3、添加、修改也屬性 1、field:屬性的先後順序 field = [‘bpub_date‘,‘btitle‘] 2、fieldsets:屬性分組 fieldsets = [ (‘basic‘,{‘fields‘:[‘btitle‘]}), (‘more‘,{‘fields‘:[‘bpub_date‘]}) ] 5、關聯對象 from django.contrib import admin from models import BookInfo,HeroInfo class HeroInfoline(admin.StackedInline/admin.TabularInline): model = HeroInfo extra = 2 class BookInfoAdmin(admin.ModelAdmin): inlines = [HeroInfoInline] admin.site.register(BookInfo,BookInfoAdmin) 6、布爾值的顯示 def sex(): if self.hsex: return ‘男‘ else : return ‘女‘ sex.short_description = ‘性別‘ class HeroInfoAdmin(admin.ModelAdmin): list_display = [‘id‘,‘hname‘,‘sex‘,‘hcontent‘] -------------------視圖------------------- 1、設置views.py from django import HttpResponse def index(requset): return HttpResponse(‘index‘) def detail(requset): return HttpResponse(‘detail‘) 2、配置URLconf 1、URLconf包含正則表達式和視圖兩部分 2、進行test1中url的編寫 url(r‘^‘,include(‘booktest.urls‘)) 3、在booktest中進行urls的編寫操作 from django.conf.urls import url from . import views urlpatters = [ url(r‘^‘,view.index), url(r‘^([0-9]+)/$‘,view.detail), ] -------------------模板------------------- 1、模板文件夾創建 1、創建對應存放模板的文件夾 mkdir templates/booktest/index.html 2、修改setting.py文件,設置TEMPLATES的DIRS值 ‘DIRS‘:[os.path.jion(BASE_DIR,‘templates‘)], 2、創建模板 1、在模板中訪問試圖傳遞的數據 {{輸出值,可以是變量,也可以是對象.屬性}} {%執行代碼%} 3、使用模板 1、編輯views.py文件,在方法中調用模板 from django.http import HttpResponse from django.template import RequestContext,loader from models import BookInfo def index(request): booklist = BookInfo.objects.all() template = loader.get_template(‘booktest/index.html‘) context = RequestContext(request,{‘booklist‘:booklist}) return HttpResponse(template.render(context)) 4、去除模板的硬編碼 1、修改test1/urls.py文件,在include中設置namespace url(r‘^admin/‘,include(admin.site.urls,namespace=‘booktest‘)), 2、修改booktest/urls.py文件,設置name url(r‘^book/([0-9]+)/$‘,views.detail,name=‘detail‘) 3、修改index.html模板中的鏈接 <a herf ="{% url ‘booktest:detail‘ book.id%}"> 5、Render簡寫 from django.shortcuts import render from models import BookInfo def index(reqeust): booklist = BookInfo.objects.all() return render(reqeust,‘booktest/index.html‘,{‘booklist‘:booklist}) --django根據models生成對應的腳本文件python manage.py sql [項目名稱:t2cloud_auth]

django框架概述