日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

[Python] Django框架入门

發布時間:2025/4/9 python 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 [Python] Django框架入门 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

說明:Django框架入門

  當前項目環境:python3.5、django-1.11

  項目名:test1

  應用名:booktest

  命令可簡寫為:python manager.py xxx => ./manager.py xxx?

?

準備:已經安裝python并加入環境變量

  已安裝 django

?

設計框架對比(引用,可自行搜索):

  1、MVC

    MVC框架的核心思想是:解耦

    降低各功能模塊之間的耦合性,方便變更,更容易重構代碼,最大程度上實現代碼的重用

    m表示model,主要用于對數據庫的封裝

    v表示view,用于向用戶展示結果

    c表示controller,是核心,用戶處理請求,獲取數據,返回結果

  2、MVT

    Django屬于MVT框架

    m表示model,負責與數據庫交互

    v表示view,是核心,負責接收請求、獲取數據、返回結果

    t便是template,負責呈現內容到瀏覽器

  

  個人覺得兩種框架基本大同小異

?

?

一、開始

  1、創建項目:test1

    ?> django-admin startproject test1??

?

  2、進入test1目錄創建應用:booktest

    ?> python manager.py startapp booktest?

    創建完成,可以看到項目下booktes目錄    

?

  3、啟動服務器,測試

    ?> python manager.py runserver [8080]?

    

    端口號可以指定,默認8000

    打開瀏覽器訪問 : 127.0.0.1:8080

     

?

二、創建模型:

  打開booktest目錄下的 models.py文件,編輯如下 ?

1 from django.db import models 2 """ 3 models文件的作用: 4 1、根據models的定義去生成SQL語句,并創建表 5 2、創建對象,對對象進行各種操作 6 圖書-英雄的關系為一對多 7 """ 8 9 10 # 圖書表 11 class BookInfo(models.Model): 12 # 默認自動生成id 13 # 圖書名稱 14 btitle = models.CharField(max_length=20) 15 # 圖書發布時間 16 bpub_data = models.DateTimeField() 17 18 def __str__(self): 19 return self.btitle 20 21 22 23 # 英雄表 24 class HeroInfo(models.Model): 25 # 英雄姓名 26 hname = models.CharField(max_length=10) 27 # 英雄性別 28 hgender = models.BooleanField() 29 # 英雄簡介 30 hcontent = models.CharField(max_length=500) 31 # 所屬圖書 : 外鍵引用對象 32 hbook = models.ForeignKey(BookInfo)

?

?

三、生成數據表

  1、激活模型:編輯settings.py文件,將booktest應用加入到INSTALLED_APPS下,編輯之后如下:

1 INSTALLED_APPS = [ 2 'django.contrib.admin', 3 'django.contrib.auth', 4 'django.contrib.contenttypes', 5 'django.contrib.sessions', 6 'django.contrib.messages', 7 'django.contrib.staticfiles', 8 'booktest', # 我們添加的應用 9 ]

    數據庫使用默認的sqlite  

?

  2、生成遷移文件:根據模型類型生成sql語句

    ?> python manager.py makemigrations?

    結果如下所示:

   ? ? ? 

  

   3、執行遷移:執行sql語句生成數據表

    ?> python manager.py migrate?

? ? ? ? ? ? ??

     

四、測試數據庫操作:進入django的shell進行測試

 ?> python manager.py shell?

  1、添加記錄,并查看

    

?   ? ? ?

      

?

?五、定義視圖

  這里為了方便處理,在booktest應用下新建了一個urls.py文件,方便管理

  1、Route配置

    ① 查看setting.py文件如下:

    ?ROOT_URLCONF = 'test1.urls'?

    ② 修改test1/urls.py文件如下:

1 from django.conf.urls import url, include 2 from django.contrib import admin 3 4 5 urlpatterns = [ 6 url(r'^admin/', admin.site.urls), 7 # 使用應用的urls 8 url(r'^', include('booktest.urls')) 9 ]

?

    ③ 在booktest目錄下新建urls.py文件,編輯如下:  

1 from django.conf.urls import url 2 from . import views 3 4 urlpatterns = [ 5 # 首頁的處理方法 6 url(r'^$', views.index) 7 ]

?

  2、修改視圖文件 booktest/views.py 

1 from django.http import * 2 3 4 def index(request): 5 # 打印 字符串 6 return HttpResponse("Hello Django")

?

?

  3、測試視圖,結果如下

  

?

?六、定義模板(這里僅僅對模板進行展示,更多模板操作,可查閱官方文檔)

  1、創建templates目錄,并添加文件 index.html,編輯 index.html文件:

  ?  

    

?

  2、?修改settings.py文件,編輯如下:

    'DIRS': [os.path.join(BASE_DIR, 'templates')], # 修改目錄

?

    

?

? ? ?3、修改視圖文件 views.py

1 from django.shortcuts import render 2 from django.http import * 3 from django.template import RequestContext, loader 4 5 6 def index(request): 7 # # 加載模板 render() 渲染模板 8 # tmp = loader.get_template('booktest/index.html') 9 # return HttpResponse(tmp.render()) 10 return render(request, 'booktest/index.html')

?

 

  4、測試,刷新頁面

?  

?

?

附錄一:使用Django提供管理站點,對數據庫進行管理

  1、創建管理用戶

    ?> python manager.py createsuperuser?

    按照要求輸入賬號、郵箱、密碼

    

  2、打開網頁,登錄

    瀏覽器訪問地址(根據自己的情況):127.0.0.1:8000/admin

    進入管理站點,默認可以對groups、users進行管理,如下:

?    

  3、管理界面本地化(顯示為中文、修改時區)

    修改配置文件settings.py 如下:

1 # LANGUAGE_CODE = 'en-us' 2 LANGUAGE_CODE = 'zh-hans' 3 4 # TIME_ZONE = 'UTC' 5 TIME_ZONE = 'Asia/Shanghai'

?

    語言代碼與版本有關:1.8之后使用“zh-hans”,之前是“zh-cn”

  

  4、自定義管理界面

?   ? ?Django提供了admin.ModelAdmin類,來定義模型在Admin界面顯示的方式

    需要在django提供的管理站點進行管理model,則需要修改應用下的admin.py文件如下:

1 from django.contrib import admin 2 from .models import * 3 4 5 # 如果需要通過/admin進行管理,需要進行注冊 6 admin.site.register(BookInfo) 7 admin.site.register(HeroInfo)

?

    如果對頁面有更多的要求、顯示更多內容,則如下更改admin.py

1 from django.contrib import admin 2 from .models import * 3 4 5 class HeroInfoInline(admin.TabularInline): 6 """ 7 關聯對象注冊 8 可以繼承的父類: 9 1-層疊顯示:admin.TabularInline 10 2-表格顯示:admin.StackedInline 11 """ 12 model = HeroInfo 13 extra = 3 14 15 16 class BookInoAdmin(admin.ModelAdmin): 17 # 1、列表頁屬性 18 # 顯示字段:可以點擊列頭進行排序 19 list_display = ['id', 'btitle', 'bpub_data'] 20 # 過濾字段:過濾框會出現在右側 21 list_filter = ['btitle'] 22 # 搜索字段:搜索框會出現在上側 23 search_fields = ['btitle'] 24 # 分頁:分頁框會出現在下側 25 list_per_page = 10 26 27 # 2、修改、添加頁屬性 28 # 屬性分組 29 fieldsets = [ 30 ('base', {'fields': ['btitle']}), 31 ('super', {'fields': ['bpub_data']}) 32 ] 33 # 關聯的對象 34 inlines = [HeroInfoInline] 35 36 37 class HeroInfoAdmin(admin.ModelAdmin): 38 # 顯示字段:可以點擊列頭進行排序 39 list_display = ['id', 'hname', 'gender', 'hcontent'] 40 41 42 # 如果需要通過/admin進行管理,需要進行注冊 43 admin.site.register(BookInfo, BookInoAdmin) 44 admin.site.register(HeroInfo, HeroInfoAdmin)

?

?    下圖為列表頁面:對應上圖的BookInfoAdmin中以為 list_xxx 開頭的字段

?    

      下圖為修改、新增頁面:對屬性進行分組,對應上面代碼的BookInfoAdmin的 fieldsets字段

?

?    

  5、管理對象的注冊

    修改admin.py文件如下:

    

    

?

  6、布爾值顯示

?    修改models.py文件如下

?    

?

?    修改models.py文件

    

?

?

?

?

?

轉載于:https://www.cnblogs.com/reader/p/9436243.html

總結

以上是生活随笔為你收集整理的[Python] Django框架入门的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。