【Sanic框架】第一章:框架搭建

2023-10-18 00:58
文章标签 搭建 框架 第一章 sanic

本文主要是介绍【Sanic框架】第一章:框架搭建,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Python框架搭建前需要做一些准备:python、pycharm、mysql、redis,这些都是前期或者后期用的到的东西。至于怎么准备,百度上有大量的经验来学习,这里就不做陈述了。

 

创建app

所有准备工作做完后就可以开始了,首先在pycharm上创建新项目,至于目录你们自己定义,下面虚拟环境一定要创建,最好不要用python全局的环境来写代码。

创建好之后,首先打开项目自带的命令行工具(terminal),或者cmd命令进入项目的虚拟环境中,运行命令:

pip install sanic  # 下载sanic 注意:sanic框架只支持python3.5以上的版本
pip freeze > requirements.txt  #把下载的相应包放到版本管理文件中

然后你就能看到项目中多了个requirement.txt文件,以后项目转移的时候就能用到。

包下载好了,就下来就开始写app.py文件了,首先写一个hello world:

from sanic import Sanic
from sanic.response import jsonapp = Sanic()@app.route("/")
async def test(request):return json({"hello": "world"})if __name__ == "__main__":app.run(host="127.0.0.1", port=8000)

运行这个文件:python3 app.py

打开浏览器127.0.0.1:8000就能看到hello world了

创建项目目录

当然,有这些显然还不够,对于一个大型项目来说,只靠代码是明显不行的。先搭建好各个需要用到的目录:

│  app.py                项目主文件
│  readme.txt            自述文件
│  requirements.txt      版本库管理工具
├─route                  路由
│  │  __init__.py
│  └─api_v1
├─static                 静态文件
│  ├─apidoc              接口文档
│  └─log                 日志
├─until                  公共文件
│  ├─base                连接池文件
│  │      mysql.py
│  │      redis.py
│  └─config              配置文件
│          settings.py
└─venv                   虚拟环境

蓝图

对于任何一个项目来说,路由不可能写在app文件中,主文件只需要写一些启动配置项就够了,那路由应该写到哪里去呢?

这里就用到了蓝图(blueprint)

先解释下蓝图:蓝图就是把项目划分为模块,也就是路由分块每个功能的路由单独存放一个文件,方便后期维护阅读,让程序更加松耦合,更加灵活,增加复用性,提高查错效率,降低出错概率。(百度有更具体的解释)

那么要怎么用呢,上面目录中有route目录就是我们存放划分后的路由的,api_v1文件夹是放各个模块的功能,__init__就相当于汇总了,

现在__init__.py文件中引入我们需要的模块blueprint,在api_v1文件夹中新建一个hello.py文件

from sanic import Blueprintapi = Blueprint('api_v1', __name__) #注意,变量名一定不要和文件夹名重复
from .api_v1 import hello

打开hello.py文件

from routes import api
from sanic.response import json@api.route('/hello')
def select(request):return json({'res': 1})

写完之后还不算完成,需要在app.py文件中添加配置

from sanic import Sanic
from routes import api     #这里先导入app = Sanic(__name__)if __name__ == "__main__":app.blueprint(api,url_prefix='/blog') #添加api的引用,这里有很多参数,可以去网上查询他的用法app.run(host="127.0.0.1", port=8000)

一个简单的路由就完成了。然后去请求一下

这篇关于【Sanic框架】第一章:框架搭建的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/229118

相关文章

Mycat搭建分库分表方式

《Mycat搭建分库分表方式》文章介绍了如何使用分库分表架构来解决单表数据量过大带来的性能和存储容量限制的问题,通过在一对主从复制节点上配置数据源,并使用分片算法将数据分配到不同的数据库表中,可以有效... 目录分库分表解决的问题分库分表架构添加数据验证结果 总结分库分表解决的问题单表数据量过大带来的性能

Java汇编源码如何查看环境搭建

《Java汇编源码如何查看环境搭建》:本文主要介绍如何在IntelliJIDEA开发环境中搭建字节码和汇编环境,以便更好地进行代码调优和JVM学习,首先,介绍了如何配置IntelliJIDEA以方... 目录一、简介二、在IDEA开发环境中搭建汇编环境2.1 在IDEA中搭建字节码查看环境2.1.1 搭建步

Python3中Sanic中间件的使用

《Python3中Sanic中间件的使用》Sanic框架中的中间件是一种强大的工具,本文就来介绍Python3中Sanic中间件的使用,具有一定的参考价值,感兴趣的可以了解一下... 目录Sanic 中间件的工作流程中间件的使用1. 全局中间件2. 路由中间件3. 异常处理中间件4. 异步中间件5. 优先级

Python基于火山引擎豆包大模型搭建QQ机器人详细教程(2024年最新)

《Python基于火山引擎豆包大模型搭建QQ机器人详细教程(2024年最新)》:本文主要介绍Python基于火山引擎豆包大模型搭建QQ机器人详细的相关资料,包括开通模型、配置APIKEY鉴权和SD... 目录豆包大模型概述开通模型付费安装 SDK 环境配置 API KEY 鉴权Ark 模型接口Prompt

MyBatis框架实现一个简单的数据查询操作

《MyBatis框架实现一个简单的数据查询操作》本文介绍了MyBatis框架下进行数据查询操作的详细步骤,括创建实体类、编写SQL标签、配置Mapper、开启驼峰命名映射以及执行SQL语句等,感兴趣的... 基于在前面几章我们已经学习了对MyBATis进行环境配置,并利用SqlSessionFactory核

鸿蒙开发搭建flutter适配的开发环境

《鸿蒙开发搭建flutter适配的开发环境》文章详细介绍了在Windows系统上如何创建和运行鸿蒙Flutter项目,包括使用flutterdoctor检测环境、创建项目、编译HAP包以及在真机上运... 目录环境搭建创建运行项目打包项目总结环境搭建1.安装 DevEco Studio NEXT IDE

搭建Kafka+zookeeper集群调度

前言 硬件环境 172.18.0.5        kafkazk1        Kafka+zookeeper                Kafka Broker集群 172.18.0.6        kafkazk2        Kafka+zookeeper                Kafka Broker集群 172.18.0.7        kafkazk3

【IPV6从入门到起飞】5-1 IPV6+Home Assistant(搭建基本环境)

【IPV6从入门到起飞】5-1 IPV6+Home Assistant #搭建基本环境 1 背景2 docker下载 hass3 创建容器4 浏览器访问 hass5 手机APP远程访问hass6 更多玩法 1 背景 既然电脑可以IPV6入站,手机流量可以访问IPV6网络的服务,为什么不在电脑搭建Home Assistant(hass),来控制你的设备呢?@智能家居 @万物互联

cross-plateform 跨平台应用程序-03-如果只选择一个框架,应该选择哪一个?

跨平台系列 cross-plateform 跨平台应用程序-01-概览 cross-plateform 跨平台应用程序-02-有哪些主流技术栈? cross-plateform 跨平台应用程序-03-如果只选择一个框架,应该选择哪一个? cross-plateform 跨平台应用程序-04-React Native 介绍 cross-plateform 跨平台应用程序-05-Flutte

pico2 开发环境搭建-基于ubuntu

pico2 开发环境搭建-基于ubuntu 安装编译工具链下载sdk 和example编译example 安装编译工具链 sudo apt install cmake gcc-arm-none-eabi libnewlib-arm-none-eabi libstdc++-arm-none-eabi-newlib 注意cmake的版本,需要在3.17 以上 下载sdk 和ex