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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Django创建应用和项目基本流程学习(二)

發布時間:2025/10/17 编程问答 10 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Django创建应用和项目基本流程学习(二) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

創建項目project

創建learning_log項目

  • 在terminal中進入項目路徑(manage.py所在文件夾,后面用project_path$表示),輸入如下指令:
project_path$ django-admin startproject libnotes .
  • settings: 指定Django如何與系統交互及如何管理項目
  • urls: 告訴Django應創建哪些網頁來響應瀏覽器請求
  • wsgi: 幫助Django提供它創建的文件,web server gateway interface(web服務器網關接口)

試運行server,并自動創建db.sqlite3數據庫文件

  • 在terminal中輸入如下指令:
project_path$ python manage.py runserver
  • 復制terminal中“Starting development server at http://...:8000/”到瀏覽器,查看效果
  • 此時項目路徑中會自動生成db.sqlite3,創建一個名為0001_initial.py的遷移文件

數據庫的實施應用

  • 在terminal中輸入如下指令
project_path$ python manage.py makemigrations # 會提示沒有需要更新的數據 project_path$ python manage.py migrate # 應用上個模塊中生成的遷移文件

創建超級管理員

  • 在terminal中輸入如下指令:
project_path$ python manage.py createsuperuser

AdminName@Password

創建應用程序app: /notes/

創建app

  • 在terminal中輸入如下指令:
project_path$ python manage.py startapp learning_logs
  • models: 定義我們要在應用程序中管理的數據,告訴Django如何處理應用程序中存儲的數據。代碼層面models就是類,有屬性和方法
  • admin
  • view

激活模型,配置

  • 修改settings中installed_apps, 讓Django將應用程序app包含到項目project中
INSTALLED_APPS = ['notes',] # settings里增加app
  • 同時修改settings中的TEMPLATES屬性中的DIRS和APP_DIES
'DIRS': [os.path.join(BASE_DIR, 'templates')], 'APP_DIRS': True, # True: 先根據DIRS搜索,找不到再到各個應用的templates目錄找,False:不再搜索應用的templates目錄

項目urls中加入應用地址

from django.urls import includeurlpatterns = [path('notes/', include('notes.urls', namespace='notes')),] # urlpatterns = [path('notes/', include('notes.urls', "notes"), namespace='notes')),],app_name被放到下面的子路徑中

在應用中創建子頁面:/note/about/

給子頁面增加路徑文件

  • 在應用文件夾中增加urls.py
  • 在子頁面的路徑增加視圖view路徑(代碼如下),此處直接調用TemplateView的包所以不用import自寫的view包
from django.urls import path from django.views.generic import TemplateViewapp_name = "notes" urlpatterns = [path('about/', TemplateView.as_view(template_name="notes/about.html"), name='about'), ]

方案一:配置需調用的靜態文件(css/fonts/image/js)

  • 修改settings中的TEMPLATES屬性中的STATICFILES_DIRS
STATICFILES_DIRS = [os.path.join(BASE_DIR, "common_static"), ]
  • 方案二:還可以參考# https://docs.djangoproject.com/en/2.2/howto/static-files/
STATIC_ROOT = os.path.join(BASE_DIR, "collected_static")

給about頁面增加template

  • project目錄中創建templates文件夾
  • templates文件夾中創建about.html
  • 在.templates/notes/about.html中寫入template代碼

編寫基于類的視圖

創建基于TemplateView類的AboutView類,可以自己修改類內功能

修改app應用路徑中的views.py文件

from django.views.generic import TemplateViewclass AboutView(TemplateView):template_name = "notes/about.html" # 可以理解為AboutView是個專用類,此處可以定義抓用類的template名字,而TemplateView是個公用類,所以每次調用都需要定義模板名字

再修改應用urls中的urlpatterns調用函數

urlpatterns = [path('about/', AboutView.as_view(), name="about")# path('about/', TemplateView.as_view(template_name="notes/about.html"),name='about'), ]

數據庫交互

創建數據模型

  • 在app應用路徑中的models.py創建Notes類

  • 其中用到slugify

作用:用于將字符串中的所有空格替換成連接符(-),并將所有字符轉換為小寫。 這樣其實就生成了一個 slug ,可以很好的用于創建URL 空格在URL中不被允許
  • 數據庫中會生成notes_notes, 即appName_className
  • 創建好模型之后,執行遷移數據,完成數據庫更新
python manage.py makemigrations # 創建一個名為0001_initial.py的遷移文件,可以在上面數據庫中增加 python manage.py migrate # 應用這種遷移
  • 參閱https://docs.djangoproject.com/en/1.8/ref/models/fields

  • Operation to perform:

    • Synchronize unmigrated apps: 同步未遷移文件
    • Apply all migrations: 應用遷移

查看數據庫數據結構

  • 進入數據庫,進入項目路徑,terminal中輸入如下信息
sqlite3 db.sqlite3 # 進入數據庫環境,顯示為sqlite>
  • 查看數據庫所有的數據表
sqlite>.tables
  • 查看某個表的結構
sqlite>pragma table_info(notes_notes);
  • 選擇一個數據表用SQL語句插入一條數據
sqlite>insert into notes_notes(title, slug, overview, created, user_id) values (" django web", "django-web", "add model test", "2020-06-11", 1);
  • 從表notes_notes數據表中選擇所有的數據
sqlite>select * from notes_notes;
  • 退出sqlite環境
sqlite>.quit

總結

以上是生活随笔為你收集整理的Django创建应用和项目基本流程学习(二)的全部內容,希望文章能夠幫你解決所遇到的問題。

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