Standard methods are restful api http request,
get: Get a list
get <int: id>: acquiring a single data record
post: Add Data
put: modify data
delete: delete data
Related view processing code
from flask import jsonify,request from app.api import api from app.models.article import Article ##分页获取所有列表 @api.route('/article/',methods=['GET']) def list(): try: page=request.args.get('page',1, type=int) page_size=request.args.get('page_size',10,type=int) query = Article.query.limit(page_size).offset((page-1)*page_size).all() result_list=[item.to_json() for item in query] return jsonify(result_list) except Exception as e: print(e) raise ##获取详细内容 @api.route('/article/<int:id>/',methods=['GET']) def get_detail(id): model=Article.query.get_or_404(id) return jsonify(model.to_json()) @api.route('/article/',methods=['POST']) def add_info(): data=request.get_json(force=True) model=Article() model.desction=data['desction'] model.title=data['title'] model.add(model) return jsonify({"msg":"添加成功"}) pass ##修改数据 @api.route('/article/',methods=['PUT']) def modify(): data = request.get_json(force=True) model = Article() model.id=data['id'] model.desction = data['desction'] model.title = data['title'] model.modify(model) return jsonify({"msg": "修改成功"}) ##删除数据 @api.route('/article/<int:id>/',methods=['DELETE']) def delete_info(id): try: model = Article.delete_by_id(id) return jsonify({"message": "删除成功"}) except Exception as e: return jsonify({"messge":str(e)})
mode where the relevant code:
from app.models.base import BaseModel,db from datetime import datetime from sqlalchemy import Column,String,Integer,Text,DateTime,ForeignKey from sqlalchemy.orm import relationship ##文章类 class Article(BaseModel): __tablename__ ='article' ##数据库对应的表名 desction=Column(String(256)) title=Column(String(64),nullable=True) author=Column(String(64),default='未知作者') cover_img = the Column (String (128 )) source_link_url = the Column (String (128 )) Content = the Column (the Text) view_count = the Column (Integer, default = 0) # sort_id the Column = (Integer, default = 99) # #relationship designated by the user solid model corresponding relationship, category herein refers to an entity in the preparation of a class name, case sensitive category = relationship ( ' the category ' ) # # category.id in the variable name refers to a category sentence received category, id column name # #ForeignKey represent foreign keys categroy_id the Column = (Integer, a ForeignKey ( ' category.id ' )) DEF the __init__ (Self): self.addtime=datetime.now() ##添加数据 def add(self,article): try: db.session.add(article) db.session.commit() except Exception as e: db.session.rollback() print(e) raise e ##修改数据 def modify(self,article): try: data=Article.query.filter(Article.id==article.id).first() data.title=article.title data.desction=article.desction db.session.commit() except Exception as e: db.session.rollback() print(e) raise e ##删除数据 @classmethod def delete_by_id(_cls,id): db.session.query(Article).filter(Article.id==id).delete() db.session.commit()
# 将list转为dict,方便jsonify序列化 def to_json(self): dict = self.__dict__ if "_sa_instance_state" in dict: del dict["_sa_instance_state"] return dict
app_init initialize the relevant code:
Import api app.api from
## designated api visited prefix
app.register_blueprint (api, url_prefix = '/ api / v1 /')
It should be noted that, url in the case and /, if not exactly spell spelling there may be prompted 404
Run your browser and enter access http://127.0.0.1:5000/api/v1/article/
Here interface test tool is recommended to test the postman