前言

对公api,顾名思义,就是提供出来给所有人都能使用的api,那咱们今天就自定义一个给别人获取网页的一个api好了(因为自定义涉及数据库的api会牵扯到锁的概念,本篇从简)。

预览效果

效果如下:
获取网页效果

定义并实现对公api

找到 hexoweb\pub.py 文件,在文件最末尾的地方添加如下代码:

1
2
3
4
5
6
+# 获取网页
+@csrf_exempt
+def gethtml(request):
+ t=loader.get_template('home/showhtml.html')
+ html=t.render({'name':"Shine"}, request) #以字典形式传递数据并生成html
+ return HttpResponse(html)

找到 hexoweb\pub.py 文件,在开头处找到如下代码并修改:

1
2
-from django.http import JsonResponse
+from django.http import HttpResponse, JsonResponse

配置对公api路由

找到 core\urls.py 文件,添加如下内容:

1
2
3
4
5
6
    path('pub/like_talk/', pub.like_talk, name='pub_like_talk'),
path('pub/save_talk/', pub.save_talk, name='pub_save_talk'),
path('pub/del_talk/', pub.del_talk, name='pub_del_talk'),
+ path('pub/gethtml/', pub.gethtml, name='pub_gethtml'),

re_path(r'^(?!api)^(?!pub).*$\.*', pages, name='pages'),

创建模板html

新建模板 templates\home\showhtml.html 文件, 内容如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<!DOCTYPE html>
<html lang="en">

<head>
<meta charset="utf-8"/>
<style>
#hello {
color: aqua;
}
#am {
color: brown;
}
</style>
</head>

<body class="aa">
<p id="hello"> Hello World! </p>
<p id="am"> I am {{ name }} </p>
</body>

</html>

Qexo四连

在cmd命令行中输入如下命令运行部署Qexo项目:

1
2
3
4
E:\Qexo> pip3 install -r requirements.txt
E:\Qexo> python3 manage.py makemigrations
E:\Qexo> python3 manage.py migrate
E:\Qexo> python3 manage.py runserver --noreload

访问 http://127.0.0.1:8000/pub/gethtml/ 查看页面效果。