自我笔记 - django 系列 [基础篇]

django 基础篇

主要说明如何创建一个基本的 django 服务。

基本工具

  • env虚拟机 - virtualenvwrapper-win

    • 安装: pip install virtualenvwrapper-win
    • 基本指令:
      • 创建: mkvirtualenv <虚拟机名称>
      • 列表: workon
      • 进入: workon <虚拟机名称>
      • 删除: rmvirtualenv <虚拟机名称>
  • python

  • django

    • 版本: 2.1.7 官方文档
    • 安装: pip install django==2.1.7

基本概念

  • Model: 与资料库栏位对映
  • Template: 可於一般HTML内加入for、if等等判断
  • View: 逻辑编写
    https://ithelp.ithome.com.tw/upload/images/20210505/20132538E9IkCs2jR9.jpg

专案创建

  • django-admin startproject <专案名称>
  • python manage.py runserve 开启本地服务器,预设 8000 port
  目录结构
  |   manage.py
  \---djangoAPI
          asgi.py
          settings.py
          urls.py
          wsgi.py
          __init__.py
  • manage.py: django命令包 参考
  • asgi.py: ASGI兼容的Web服务器上的入口
  • settings.py: 项目配置文件(DB、金钥、引用apps...)
  • urls.py: 主要路由器(各功能urls可於此集中)
  • wsgi.py: WSGI兼容的Web服务器上的入口
  • __init__.py: 一个空文件,告诉python这个目录是一个python包 参考

创建功能模组

  • python manage.py startapp <功能名称>
  目录结构
  |   manage.py
  \---testSetting
      |   admin.py
      |   apps.py
      |   models.py
      |   tests.py
      |   views.py
      |   __init__.py
      |   urls.py(自行定义)
      |
      \---migrations
              __init__.py
  • admin.py: 管理员设置
  • migrations: 资料库创建纪录
  • models.py: 资料库模型
  • views.py: 功能逻辑
  • urls.py: 该功能路由

基本范例

  • 视图 - views

# app(testSetting) > views.py

from django.http import JsonResponse # 回传json格式

def test(request):
  data = {
    'msg': '这是一个测试的视图'
  }
  return JsonResponse(data)
  • 路由 - urls

# 於各功能模组中新增 `urls.py` 档案
# app(testSetting) > urls.py
from django.urls import path
from . import views

urlpatterns = [
  path('firstApi', views.firstApi, name = 'firstApi'),
]
# 於 ***专案*** 路由载入 ***功能模组***
# project(djangoAPI) > settings.py
from django.urls import path, include

urlpatterns = [
    path('testSetting/', include('testSetting.urls'))
]

於网址列输入时,须以前缀表示EX: 127.0.0.0.1/testSetting/firstApi,如此一来在拥有很多个app时,如果有相同的views.firstApi就能够区分

测试

  • 於postMan测试如下:

https://ithelp.ithome.com.tw/upload/images/20210505/20132538XgWjJaU8t8.png


<<:  [Day 50] 留言板後台及前台(六) - 前端显示资料

>>:  {CMoney战斗营} 的第十二周 # 认识SQL

Day20 React 回圈渲染多个元件

进行专案常需要把从API获取的资讯转成阵列,把阵列里的每项物件资料,用回圈套在元件上,依序渲染多个元...

IOS、Python自学心得30天 Day-12 模组训练改善-4

前言: 利用while True:的方法後,已经能够以少次数的 epochs 来重复储存模型,但至於...

Dungeon Mizarka 009

整理进入Addressable资料 前几天利用Addressable进入载入资料时手动的将需要用到的...

Stripe

前言 现在越来越多民众喜欢透过网路付款,在网路付款中很重要的环节就是需要进行线上刷卡,提到网路付款和...

[区块链&DAPP介绍 Day9] Solidity 教学 - control flow

本日来介绍一下 solidity 的控制流程。 学任何语言基本上都需要条件判断式,那就稍微简单介绍一...