django 入门,快速搭建一个后端接口
點擊上方“AI搞事情”關(guān)注我們
創(chuàng)建項目
django-admin startproject autoweb項目目錄結(jié)構(gòu):
manager.py 與項目進行交互的命令行工具集的入口(項目管理器)
autoweb 目錄:項目容器,同項目名,包含項目的基本配置,目錄名稱不建議修改
__init__.py Python中聲明模塊的文件,內(nèi)容默認為空
settings.py 項目的總配置文件,包含數(shù)據(jù)庫、Web應(yīng)用、時間等各種配置
urls.py URL配置文件,Django項目中所有地址(頁面)都需要我們自己去配置其URL
wsgi.py WSGI(Python Web Server Gateway Interface)Python服務(wù)器網(wǎng)關(guān)接口,Python應(yīng)用與Web服務(wù)器之間的接口。
創(chuàng)建應(yīng)用
python manage.py startapp web應(yīng)用目錄:
使用命令行創(chuàng)建應(yīng)用時需要手動將應(yīng)用名添加到settings.py中的INSTALLED_APPS里,應(yīng)用名不能與Python中模塊名相同
migrations 數(shù)據(jù)移植(遷移)模塊
__init__.py: Python中聲明模塊的文件,內(nèi)容默認為空
admin.py: 應(yīng)用的后臺管理系統(tǒng)的配置
apps.py: 應(yīng)用的一些配置,Django-1.9以后自動生成
models.py: 數(shù)據(jù)模型,使用ORM框架,類似于MVC結(jié)構(gòu)中的Models(模型)
tests.py: 自動化測試模塊,Django提供了自動化測試功能,在這里編寫測試腳本(語句)
views.py: 執(zhí)行響應(yīng)代碼和邏輯處理的主要模塊,包含項目中的大部分代碼
啟動服務(wù)
manage.py runserver 0.0.0.0:80000.0.0.0表示可通過服務(wù)器的所有ip訪問到,8000位自定義端口號;瀏覽器訪問:127.0.0.1:8000出現(xiàn)默認頁面
如果需要和前端對接,前端通過IP訪問需要將本機IP加入到setting的ALLOWED_HOSTS列表里面,這樣就可以通過IP + 端口進行訪問了
路由配置
主路由:項目容器下urls.py
from django.contrib import admin from django.urls import path, includeurlpatterns = [path('admin/', admin.site.urls),path('pic/', include('web.urls')), # 為web應(yīng)用配置一個入口 ]子路由:應(yīng)用目錄下創(chuàng)建一個urls.py
from django.urls import path from . import viewsurlpatterns = [path('message', views.gen_web, name='gen_web'), ]接口開發(fā)
主要在views.py為上述路由地址實現(xiàn)相應(yīng)函數(shù),實現(xiàn)相關(guān)的功能。
views每個對外方法的參數(shù)都是request,Django 把請求的 metadata 數(shù)據(jù)包裝成一個 HttpRequest 對象,然后 Django 加載合適的 view 方法,把這個 HttpRequest 對象作為第一個參數(shù)傳給 view 方法。任何 view 方法都應(yīng)該返回一個 HttpResponse 對象。
比如在這里,我們根據(jù)前端上傳的描述字段,返回若干圖像的list給前端進行展示。
import json from django.http import HttpResponse from web.wudao.get_image import get_imagedef gen_bg(request):"""返回圖像信息"""try:if request.method == 'POST':request_body = request.bodyfestival_str = eval(request_body.decode())['descripe']print(festival_str)# 獲取圖像信息base64_lst = get_image(festival_str)if len(base64_lst) != 0:return HttpResponse(json.dumps({'code': '0', 'data': {'images': base64_lst}, 'msg': 'success'}))else:return HttpResponse(json.dumps({'code': '1', 'data': {'images': base64_lst}, 'msg': 'fail'}))else:return HttpResponse(json.dumps({'code': '1', 'msg': '請求方法錯誤!'}))except Exception as e:return HttpResponse(json.dumps({'code': '1', 'msg': str(e)}))前端通過訪問:ip:port/pic/get_bg,就可以獲取后端服務(wù)傳過去的若干圖像,前端通過頁面渲染便可以把圖像展示出來。
長按二維碼關(guān)注我們
有趣的靈魂在等你
總結(jié)
以上是生活随笔為你收集整理的django 入门,快速搭建一个后端接口的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 利用公众号 + WeRoBot开发一款A
- 下一篇: 利用python快速搭建一个ftp文件服