django框架概述
阿新 • • 發佈:2018-09-21
界面 sha base dir 部分 inf ack sgi 腳本
-------------------環境搭建-------------------
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]
------------------MVC與MVT框架-------------------
1、MVC MVC框架的核心思想是:解耦。降低各功能模塊之間的耦合性,方便將來變化時,更容易重構代碼,最大程度上實現代碼的重用。m表示model,重要用於對數據層的封裝;v表示view,用於向用戶展示結果;c表示controller,是核心,用於處理請求、獲取數據、返回結果。 2、MVT Django是一款分層框架,用於使用python進行web開發,與MVC所不同,屬於MVT框架。m表示model,負責與數據庫交互,v表示view,是核心,負責接收請求、獲取數據、返回結果;t表示template,負責呈現內容到流程器。django框架概述