轻量级的框架
1、安装flask
(1)
pip3 install flask
(如果系统中只安装了Python3,那么既可以使用pip也可以使用pip3,二者是等价的。)
可能出现的错误:’pip3′ 不是内部或外部命令,也不是可运 行的程序 或批处理文件。
原因:在Python目录下的Script目录中没有pip.exe文件(之前这个文件夹是空的,我现在安装好了)

解决:在cmd中输入 python -m ensurepip,就可以安装pip3.exe和pip3.5.exe
(2)
之后,重新输入命令,即可实现flask的安装

(3)
出现了如下警告:
WARNING: You are using pip version 21.2.4; however, version 22.0.4 is available.
You should consider upgrading via the ‘D:\Python\python.exe -m pip install –upgrade pip’ command.

原因:版本过低,要更新
解决: 在命令行中敲入如下命令,即可update

可通过如下命令查看当前的pip3版本

(因为更新了,pip和pip3都可以使用了)
2、创建虚拟环境
(1)安装virtualenv
pip3 install virtualenv -i http://pypi.douban.com/simple/
嗯。。再次报错

问题:WARNING: The repository located at pypi.douban.com is not a trusted or secure host and is being ignored. If this repository is available via HTTPS we recommend you use HTTPS instead, otherwise you may silence this warning and allow it anyway with ‘–trusted-host pypi.douban.com’.
ERROR: Could not find a version that satisfies the requirement virtualenv (from versions: none)
ERROR: No matching distribution found for virtualenv
原因:python国内网络不稳定,直接导致报错。
解决:输入命令
pip install virtualenv -i http://pypi.douban.com/simple/ --trusted-host pypi.douban.com
成功安装:

(2)创建环境
在要创建环境的目录中输入命令
[En]
Enter the command in the directory where the environment will be created
virtualenv 环境名
您可以在相应的目录下创建良好的环境。
[En]
You can create a good environment under the corresponding directory.
如输入如下命令:

在文件夹中就出现啦!

(如果有多个Python版本,可以通过命令:virtualenv -p python路径 环境名 来创建虚拟环境)
3、激活环境
进入环境下的Script目录,输入命令activate,即可激活

(在这里输命令)

4、接下来就可以在该环境下做各种事啦~
Original: https://blog.csdn.net/m0_53536589/article/details/123850603
Author: 快乐星球哇
Title: Flask的安装、配置及各种问题合集
相关阅读
Title: drf — 路由Routers以及action装饰器声明自定义方法
一、REST framework提供了两个router类
- 作用:可以使用Routers来帮助我们快速实现路由信息。
1. SimpleRouter
使用方法
- 1.创建router对象,并注册视图集
- router = routers.SimpleRouter()
- router.register(prefix, viewset, base_name)
- prefix :该视图的路由路径,例如:127.0.0.1:8000/student/ 中的student
- viewset:视图函数中定义的视图集
- base_name:该路由的别名,可选参数
- 2.添加路由(两种方式)
- 方式一:
urlpatterns = [
...
]
urlpatterns += router.urls
- 方式二:
urlpatterns = [
...
url(r'^', include(router.urls))
]
路由代码示例:
from django.urls import path, re_path
from . import views
urlpatterns = [
...
]
"""使用drf提供路由类router给视图集生成路由列表"""
# 实例化路由类
# drf提供一共提供了两个路由类给我们使用,他们用法一致,功能几乎一样
from rest_framework.routers import DefaultRouter
router = DefaultRouter()
# 注册视图集
# router.register("路由前缀",视图集类)
router.register("router_stu",views.StudentModelViewSet)
# 把生成的路由列表追加到urlpatterns
print( router.urls )
urlpatterns += router.urls
2.DefaultRouter
- 使用方法:该类的使用方法与SimpleRouter基本一样
- 区别:DefaultRouter会多附带一个默认的API根视图,返回一个包含所有列表视图的超链接响应数据。
二、action装饰器声明自定义方法
- Routers的缺点:虽然上面的代码可以成功生成路由地址,单不会自动生成我们在视图集中自定义的方法路由
- 解决办法:用action装饰器,进行声明
- 导入action装饰器 : from rest_framework.decorators import action
- action装饰器的3个参数:
- methods : 声明该action对应的请求方式,列表传递
- detail : 声明该action的路径是否与单一资源对应
- detail = True :表示路径的格式为 xxx//action方法名/
- detail = False:表示的路径格式为 xxx/action方法名/
- url_path :可设置action方法名,默认为函数名
示例代码:
from rest_framework.viewsets import ModelViewSet
from rest_framework.decorators import action
class StudentModelViewSet(ModelViewSet):
queryset = Student.objects.all()
serializer_class = StudentModelSerializer
# methods 设置当前方法允许哪些http请求访问当前视图方法
# detail 设置当前视图方法是否是操作一个数据
# detail为True,表示路径名格式应该为 router_stu/{pk}/login/
@action(methods=['get'], detail=True)
def login(self, request,pk):
"""登录"""
...
# detail为False 表示路径名格式应该为 router_stu/get_new_5/
@action(methods=['put'], detail=False)
def get_new_5(self, request):
"""获取最新添加的5个学生信息"""
...
Original: https://www.cnblogs.com/zhiqianggege/p/16221499.html
Author: 志强爱璇璇
Title: drf — 路由Routers以及action装饰器声明自定义方法
原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/299147/
转载文章受原作者版权保护。转载请注明原作者出处!