【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

相关文章

Windows Server 2025 搭建NPS-Radius服务器的步骤

《WindowsServer2025搭建NPS-Radius服务器的步骤》本文主要介绍了通过微软的NPS角色实现一个Radius服务器,身份验证和证书使用微软ADCS、ADDS,具有一定的参考价... 目录简介示意图什么是 802.1X?核心作用802.1X的组成角色工作流程简述802.1X常见应用802.

C++ HTTP框架推荐(特点及优势)

《C++HTTP框架推荐(特点及优势)》:本文主要介绍C++HTTP框架推荐的相关资料,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录1. Crow2. Drogon3. Pistache4. cpp-httplib5. Beast (Boos

SpringBoot基础框架详解

《SpringBoot基础框架详解》SpringBoot开发目的是为了简化Spring应用的创建、运行、调试和部署等,使用SpringBoot可以不用或者只需要很少的Spring配置就可以让企业项目快... 目录SpringBoot基础 – 框架介绍1.SpringBoot介绍1.1 概述1.2 核心功能2

Spring Cloud GateWay搭建全过程

《SpringCloudGateWay搭建全过程》:本文主要介绍SpringCloudGateWay搭建全过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐... 目录Spring Cloud GateWay搭建1.搭建注册中心1.1添加依赖1.2 配置文件及启动类1.3 测

SpringBoot快速搭建TCP服务端和客户端全过程

《SpringBoot快速搭建TCP服务端和客户端全过程》:本文主要介绍SpringBoot快速搭建TCP服务端和客户端全过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,... 目录TCPServerTCPClient总结由于工作需要,研究了SpringBoot搭建TCP通信的过程

Spring框架中@Lazy延迟加载原理和使用详解

《Spring框架中@Lazy延迟加载原理和使用详解》:本文主要介绍Spring框架中@Lazy延迟加载原理和使用方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐... 目录一、@Lazy延迟加载原理1.延迟加载原理1.1 @Lazy三种配置方法1.2 @Component

Gradle下如何搭建SpringCloud分布式环境

《Gradle下如何搭建SpringCloud分布式环境》:本文主要介绍Gradle下如何搭建SpringCloud分布式环境问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地... 目录Gradle下搭建SpringCloud分布式环境1.idea配置好gradle2.创建一个空的gr

Linux搭建单机MySQL8.0.26版本的操作方法

《Linux搭建单机MySQL8.0.26版本的操作方法》:本文主要介绍Linux搭建单机MySQL8.0.26版本的操作方法,本文通过图文并茂的形式给大家讲解的非常详细,感兴趣的朋友一起看看吧... 目录概述环境信息数据库服务安装步骤下载前置依赖服务下载方式一:进入官网下载,并上传到宿主机中,适合离线环境

利用Python快速搭建Markdown笔记发布系统

《利用Python快速搭建Markdown笔记发布系统》这篇文章主要为大家详细介绍了使用Python生态的成熟工具,在30分钟内搭建一个支持Markdown渲染、分类标签、全文搜索的私有化知识发布系统... 目录引言:为什么要自建知识博客一、技术选型:极简主义开发栈二、系统架构设计三、核心代码实现(分步解析

使用Python实现快速搭建本地HTTP服务器

《使用Python实现快速搭建本地HTTP服务器》:本文主要介绍如何使用Python快速搭建本地HTTP服务器,轻松实现一键HTTP文件共享,同时结合二维码技术,让访问更简单,感兴趣的小伙伴可以了... 目录1. 概述2. 快速搭建 HTTP 文件共享服务2.1 核心思路2.2 代码实现2.3 代码解读3.