中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當前位置: 首頁 > news >正文

oa系統(tǒng)開發(fā)教程seo 資料包怎么獲得

oa系統(tǒng)開發(fā)教程,seo 資料包怎么獲得,南寧網站建設優(yōu)勢,wordpress主題 欣賞restful是web編程里重要的概念 – 一種接口規(guī)范也是一種接口設計風格 設計接口: 要考慮:數據返回、接收數據的方式、url、方法 統(tǒng)一風格 rest–表現層狀態(tài)轉移 web–每一類數據–資源 資源通過http的動作來實現狀態(tài)轉移 GET、PUT、POST、DELETE path…

restful是web編程里重要的概念

– 一種接口規(guī)范也是一種接口設計風格

設計接口:
要考慮:數據返回、接收數據的方式、url、方法

統(tǒng)一風格
rest–表現層狀態(tài)轉移
web–每一類數據–資源
資源通過http的動作來實現狀態(tài)轉移 GET、PUT、POST、DELETE

path組成:
/{version}/{resources}/{resource_id}

restful api設計
方法
/v1/product POST 新增
GET 查詢所有
/v1/product/id PUT 修改
DELETE 刪除
GET 查詢某一個

router/product_view/product_api.py

from flask import Blueprint, request
from flask_restful import Api, Resource
from libs.response import generate_response
from . import product_bp# 將restful api對象和藍圖綁定
api = Api(product_bp)# 每個資源就是類,定義類
class ProductView(Resource):def get(self, id = None):return generate_response(msg="get product")def post(self):generate_response(msg="add product")def put(self, id):generate_response(msg="modify success!")def delete(self, id):return generate_response(msg="delete success!")# 路由
api.add_resource(ProductView, "/product")
api.add_resource(ProductView, "/product/<id>", endpoint="productid")

為什么要設置endpoint:由flask路由管理可知endpoint全局唯一,不指定的話都會默認endpoint為函數名(這里為類名)ProductView重復名了。

這行代碼是使用Flask框架(一個Python微型web框架)來定義一個路由?!產pi.add_resource’是Flask-RESTful擴展提供的方法,用于將資源(這里是’ProductView’)映射到URL(這里是’/product’)?!甈roductView’可能是一個你定義的類,它繼承自Flask-RESTful的’Resource’類,用于處理與產品相關的HTTP請求?!?product’是URL路徑,當用戶發(fā)送請求到這個路徑時,Flask會調用’ProductView’類中對應的方法來處理請求。

接著將增刪改查功能都實現restful接口規(guī)范
router/product_view/product_api.py

"""
@date: 2023/9/12
@file: product_api
@author: Jiangda
@desc: test"""
from flask import Blueprint, request
from flask_restful import Api, Resource
from libs.response import generate_response
from . import product_bp
from models.product import ProductInfo
from models import db# 將restful api對象和藍圖綁定
api = Api(product_bp)# 每個資源就是類,定義類
class ProductView(Resource):def get(self, id = None):if id:result = ProductInfo.query.get(id)else:result = ProductInfo.query.all()if result:if isinstance(result, list):result2 = [dict(pro) for pro in result]else:result2 = dict(result)return generate_response(msg="get success!", data=result2)else:return generate_response(code=1010, msg="data empty!")def post(self):pro_name = request.json.get("proname")pro_kind = request.json.get("prokind")pro_price = request.json.get("proprice")pro_address = request.json.get("proadd")if pro_name and pro_kind and pro_price and pro_address:proinfo = ProductInfo(product_name = pro_name,product_kind = pro_kind,product_price = pro_price,product_address = pro_address)db.session.add(proinfo)db.session.commit()return generate_response(msg="add success!")else:return generate_response(msg="add fail!", code=1011)def put(self, id):p1 = ProductInfo.query.get(id)if p1:# 接收客戶端的傳遞pro_name = request.json.get("proname")pro_kind = request.json.get("prokind")pro_price = request.json.get("proprice")pro_address = request.json.get("proadd")p1.product_name = pro_namep1.product_kind = pro_kindp1.product_price = pro_pricep1.product_address = pro_addressdb.session.add(p1)db.session.commit()return generate_response(msg="modify success!")else:return generate_response(msg="no such product!", code=1012)def delete(self, id):p2 = ProductInfo.query.get(id)if p2:db.seesion.delete(p2)db.session.commit()return generate_response(msg="delete success!")else:return generate_response(msg="delete failed!", code=1013)# 路由
api.add_resource(ProductView, "/product")
api.add_resource(ProductView, "/product/<id>", endpoint="productid")

不做前后端分離的項目的話:直接返回網頁 web開發(fā)模式:MVC(model數據模型+view視圖用戶界面+control控制路由查找)

flask – MTV模型(M-model,T-template,V-view),寫網站(Jinjia模板引擎)

router/view01.py

#render_template()函數:頁面渲染
import render_template
@view01_bp.route("index2")
def index2():return render_template("index.html", message = "hello k8s")

templates/index.html

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title>
</head>
<body>
{{ message }}
<img src="/static/images/k8s.jpg">
</body>
</html>

在這里插入圖片描述

使用bootstrap4實例:

router/product_view/product.py
添加

import render_templatereturn render_template("product.html", prolist=result2)

訪問http://127.0.0.1:9000/v1/product/get
在這里插入圖片描述
templates/product.html
在body加入

  <table class="table"><th><td>產品名稱</td><td>產品種類</td><td>產品價格</td><td>產品產地</td></th>{% for pro in prolist %}<tr><td></td><td>{{ pro["product_name"] }}</td><td>{{ pro["product_kind"] }}</td><td>{{ pro["product_price"] }}</td><td>{{ pro["product_address"] }}</td></tr>{% endfor %}</table>

在這里插入圖片描述

加按鈕,且利用url_for()通過endpoint找url
templates/product.html

<td>操作</td>
<td><button type="button" class="btn btn-light"><a href="{{ url_for('product_bp.productdelete', id = pro.product_id) }}">刪除</a></button></td>

router/product_view/product2.py

@product_bp.route("/product2/delete", methods=['GET'])
def productdelete():id = request.args.get("id")p2 = ProductInfo.query.get(id)if p2:db.session.delete(p2)db.session.commit()return render_template("product.html",msg="delete success!")else:return generate_response(msg="no such product", code=6)

添加增加功能
router/product_view/product2.py

@product_bp.route("/product2/add" ,methods=['GET','POST'])
def productadd():# 接收客戶端的傳遞pro_name = request.form.get("proname")pro_kind = request.form.get("prokind")pro_price = request.form.get("proprice")pro_address = request.form.get("proadd")proinfo = ProductInfo(product_name = pro_name,product_kind = pro_kind,product_price = pro_price,product_address = pro_address)# 生效到數據庫db.session.add(proinfo)db.session.commit()return render_template("product_add.html")

templates/product_add.html

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title><link rel="stylesheet" type="text/css" href="/static/css/bootstrap.css">
</head>
<body>
<form method="post"><div class="form-group row"><label for="inputPassword" class="col-sm-2 col-form-label">產品名稱</label><div class="col-sm-10"><input class="form-control" name="proname"></div></div><div class="form-group row"><label for="inputPassword" class="col-sm-2 col-form-label">產品類型</label><div class="col-sm-10"><input class="form-control" name="prokind"></div></div><div class="form-group row"><label for="inputPassword" class="col-sm-2 col-form-label">產品價格</label><div class="col-sm-10"><input class="form-control" name="proprice"></div></div><div class="form-group row"><label for="inputPassword" class="col-sm-2 col-form-label">產品產地</label><div class="col-sm-10"><input class="form-control" name="proadd"></div></div><input type="submit" value="新增"><input type="reset" value="取消">
</form>
</body>
</html>

為什么用orm?什么是orm?
對象關系映射,它不需要和復雜的sql語句打交道,直接操控對象就是操控數據庫,把表映射為類,把字段映射為屬性,每一行記錄映射為對象,提高我們開發(fā)的速度,方便開發(fā)。
可以不用,我們用過pymysql去創(chuàng)建sql語句去做的。

對象關系映射(Object Relational Mapping,簡稱ORM)是一種程序技術,用于實現面向對象編程語言里不同類型系統(tǒng)的數據之間的轉換。它通過使用描述對象和數據庫之間映射的元數據,將程序中的對象自動持久化到關系數據庫中。
ORM的由來:面向對象是從軟件工程基本原則(如耦合、聚合、封裝)的基礎上發(fā)展起來的,而關系數據庫則是從數學理論發(fā)展而來的,兩套理論存在顯著的區(qū)別。為了解決這個不匹配的現象,對象關系映射技術應運而生。
簡單的說,ORM是通過使用描述對象和數據庫之間映射的元數據,將程序中的對象自動持久化到關系數據庫中。 ORM提供了實現持久化層的另一種模式,它采用映射元數據來描述對象關系的映射,使得ORM中間件能在任何一個應用的業(yè)務邏輯層和數據庫層之間充當橋梁。

什么是restful?
一種接口規(guī)范也是一種接口設計風格,一般來說api的設計都會遵循,他是表現層狀態(tài)轉移,它將每一類數據看做成資源,每一類資源又為其設計一種url,這種資源的增刪改查通過http的動作(get post put delete)等方法來實現

RESTful是一種網絡應用程序的設計風格和開發(fā)方式,基于HTTP,可以使用XML格式定義或JSON格式定義。它適用于移動互聯網廠商作為業(yè)務使能接口的場景,實現第三方OTT調用移動網絡資源的功能。
在RESTful中,每個資源都有一個唯一的URL,可以通過HTTP請求來獲取或修改該資源的狀態(tài)。RESTful采用了一種無狀態(tài)協議,即服務器不維護與客戶端的連接狀態(tài),每個請求都是獨立的。這種無狀態(tài)協議使得RESTful更加靈活和可擴展,可以輕松地支持并發(fā)請求和負載均衡。
RESTful的核心思想是將網絡資源視為一種狀態(tài),并通過HTTP協議來傳輸和操作這些狀態(tài)。在RESTful中,每個資源都有一個唯一的URL,可以通過HTTP請求來獲取或修改該資源的狀態(tài)??蛻舳耸褂肎ET、POST、PUT、DELETE4個表示操作方式的動詞對服務端資源進行操作:GET用來獲取資源,POST用來新建資源(也可以用于更新資源),PUT用來更新資源,DELETE用來刪除資源。

統(tǒng)一接口返回
也是restful接口返回的一種規(guī)范,返回json數據,返回data,code,message。

http://www.risenshineclean.com/news/53106.html

相關文章:

  • 觸摸屏html網站深圳網絡營銷怎么推廣
  • 溫州專業(yè)微網站制作多少錢sem搜索引擎
  • 建筑資料網站有哪些鄭州seo技術外包
  • 如果做二手車網站南寧seo公司
  • 團購營銷型網站制作關鍵一招
  • 山西建設執(zhí)業(yè)注冊管理中心網站怎么推廣比較好
  • 優(yōu)化公司流程制度百度seo關鍵詞排名 s
  • 旗袍網頁制作模板嘉興seo優(yōu)化
  • 網站建設方案 安全新媒體營銷成功案例
  • 手表網站有哪個比較好刷外鏈網站
  • WordPress的文本編輯器福建seo
  • 網站開發(fā)的開題任務書武漢搜索引擎排名優(yōu)化
  • 做紋身注冊什么網站好頭條新聞 最新消息條
  • 二級域名指向 獨立網站營銷型企業(yè)網站
  • 東莞網站哪家好鄭州粒米seo外包
  • 在線做logo的網站惡意點擊軟件哪幾種
  • 支付網站搭建業(yè)務推廣網站
  • 做網站前臺用什么軟件軟文營銷是什么
  • 上海建設網站浦東新區(qū)污水管網工程鄭州網站seo推廣
  • 日本插畫網站中國十大搜索引擎排名
  • 做網站在圖片里加文字流量平臺
  • 做傳奇網站報毒怎么處理bing搜索引擎入口
  • 用QQ群做網站排名現在最火的推廣平臺有哪些
  • 網站建設制作視頻長沙seo步驟
  • 做網站怎么每天更新內容旺道優(yōu)化軟件
  • 福州做網站互聯網公司做百度推廣的公司電話號碼
  • 鄭州做網站的公司哪家專業(yè)seo網站
  • 做特賣的網站愛庫存seo診斷優(yōu)化方案
  • 企業(yè)做網站的流程深圳網絡營銷推廣渠道
  • 建筑人才網招聘官網登錄深圳seo優(yōu)化排名公司