flask从服务器获取html页面,flask的ajax、获取服务器数据、放到前端页面、如果数据存在显示标签、如果不存在不显示标签...

-------------------------------------第一部分-----------------------------------------------------------------------------------

#主要app

from flask import Flask,render_template

import config

from exts import db

from models import User,Article,Tag

#导入蓝图

from articleview import article_bp

app = Flask(__name__)

app.config.from_object(config)

#注册蓝图

app.register_blueprint(article_bp)

db.init_app(app)

@app.route('/')

def hello_world():

#插入用户名

user = User(username='zhiliao',email='xxx@qq.com')

#插入文章

article = Article(title='abc',content='123')

#abc这个文章是zhiliao写的

article.author = user

tag1 = Tag(name='前端')

tag2 = Tag(name='Python')

#abc这个文章的标签有 前端、和Python

article.tags.append(tag1)

article.tags.append(tag2)

#只需要添加article 那么和article相关联的所有对象就会被统一添加

db.session.add(article)

#提交

db.session.commit()

return render_template("index.html")

if __name__ == '__main__':

app.run(debug=True,port = 9999)

-------------------------------------------第二部分、蓝图中使用 flask-restful发送是数据库数据、json数据的格式--------------------------------------------------------------------

from flask import Blueprint,make_response,render_template,make_response

from flask_restful import Resource,fields,marshal_with,Api

from models import Article

'''

使用ajax给前端进行传值

'''

#使用蓝图

article_bp = Blueprint("article",__name__,url_prefix="/article")

#使用蓝图初始化app

api = Api(article_bp)

#当访问 article/list的时候要判断返回什么数据,是什么类型? 如果是get请求给他返回html,

# @api.representation("text/html")

# def output_html(data,code,headers):

#

# '''

# 在这个函数里面判断 是什么数据? json 还是 html

# :param data:

# :param code:

# :param headers:

# :return: 在representation装饰的函数中, 必须返回一个Response对象

# '''

# # print(data)

# print("data什么类型:",type(data))

# if type(data) == str:

# resp = make_response(data)

# return resp

# else:

# # return data

# pass

class ArticleView(Resource):

#验证要传递的数据

resource_fields = {

# attribute 的意思是修改名称 把title修改成school

"school": fields.String(attribute="title"),

"content":fields.String,

# "author":fields.String,

"author":fields.Nested({

"username":fields.String,

"email":fields.String

}),

# "tags":fields.String 需要传递列表

"tags":fields.List(fields.Nested({

"id":fields.Integer,

"name":fields.String

})),

# default 指定是80

"read_count":fields.Integer(default=80)

}

#

@marshal_with(resource_fields)

def get(self,article_id):

#拿数据

article = Article.query.get(article_id)

#传递数据

print("----------",article)

return article

api.add_resource(ArticleView,"//",endpoint = "article")

class ListView(Resource):

def get(self):

#继承了 Resource的 视图,默认返回json数据,这里返回html 所以要用到11-29行代码

return render_template("index.html")

# return{"username":"wakaka"}

api.add_resource(ListView,"/list/",endpoint = "list")

------------------------------------------------第三部分、前端页面如果数据存在 打印一个标签-------------------------------------------------------------

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值