一个简化sanic守护进程开发的框架。

os-sanic的Python项目详细描述


#萨尼奇公司[构建状态](https://www.travis-ci.org/cfhamlet/os-sanic.svg?branch=master)(https://www.travis-ci.org/cfhamlet/os sanic)
[![codecov](https://codecov.io/gh/cfhamlet/os sanic/branch/master/graph/badge.svg)(https://codecov.io/gh/cfhamlet/os sanic)
[![pypi-python版本](https://img.shields.io/pypi/pyversions/os sanic.svg)(https://pypi.python.org/pypi/os sanic)
[![pypi](https://img.shields.io/pypi/v/os sanic.svg)(https://pypi.python.org/pypi/os sanic)

r/>用法

*创建项目

通常,项目包含管理脚本、配置文件和一组可重用的应用程序。

```
os sanic startproject project——使用app example
```

此命令将在当前目录中创建一个新项目,其中包含一个示例app,其结构如下:

```
project/
——apps
——init/>鬓——示例
ig.py
——manager.py
````

*create app

app设计为可重用单元。每个应用程序都可能有一些插件,用于加载/转储数据,在服务器启动/关闭时管理数据库连接。它应该有处理http/https/websocket请求的处理程序。路由(uri到处理程序)是必需的。此外,[提供静态文件](https://sanic.readthedocs.io/en/latest/sanic/static_files.html)也很有用。您可以查看"example"应用程序以了解更多详细信息。


`````
python manage.py startproject first
````

这个命令将在apps目录中创建一个名为"first"的应用程序。您应该手动将应用程序包字符串添加到"config.py"中的"installed_apps"中以启用它。

*创建具有完整功能的应用程序

sanic framework产品[中间件](https://sanic.readthedocs.io/en/latest/sanic/middleware.html)和[异常](https://sanic.readthedocs.io/en/latest/sanic/exceptions.html),它们都可以使用。下面的命令将创建一个带有中间件和错误处理程序的应用程序。

````
python manage.py startapp second--full feature
````


8.12)。他们将影响整个项目。[发布](https://github.com/great success/sanic/issues/37)


*显示项目信息

`````
python manage.py info
`````

*启动服务器``启动服务器。使用`--help``种子更多命令行选项。



\config

*服务器配置

>默认配置文件为``config.py``,这里定义的参数用于服务器范围,可以从``sanic``实例的``config``成员访问,[更多详细信息](https://sanic.readthedocs.io/en/latest/sanic/config.html)。


*安装应用程序

写的如下:

```
已安装的应用程序=[
{
‘名称’:‘示例’,
‘包’:‘应用程序.示例’,
‘URL前缀’:‘示例’,
}
]
````
-``名称`:如果未设置,则应用程序名称将使用``pack``年龄``的最后一个片段
-`` package``:应用程序的包
-``url前缀``(别名`prefix````):将此作为应用程序的视图前缀,否则使用app name
-``config``:应用程序的配置文件,与``app.py``文件相同,但将包含在``app.py``中定义的参数。

*应用程序定义

app在"app.py"中定义。``扩展名````路由``和``静态``是主要的组件,

-``扩展名``用作插件机制。可用于加载/转储数据,在服务器启动/关闭时管理数据库连接。``名称``和``扩展类``是必需的,其他参数将传递给扩展实例的配置。

```
扩展名=[
{
‘名称’:'示例',
‘扩展类’:'.extension.example',
‘key1、'value1'、
}
]
```

-``routes``用于指定不同uri的处理程序。可以使用路由定义的所有[内置参数](https://sanic.readthedocs.io/en/latest/sanic/routing.html)。


````
routes=[
('/e1','.handler.exampleview'),
('/e2','.handler.handle'post',['post']),
('/e3','.handler.handle'websocket','websocket',none,true)
]
``````

可以传递自定义参数的更详细的样式:


```
routes=[
{
'uri':'/',
'handler':'.view.exampleview',
'costom-key':'custom-value',
}
]
```

-``statics``用于[提供静态文件](https://sanic.readthedocs.io/en/latest/sanic/static_files.html)。``文件或目录``可以是基于应用程序运行时配置路径的绝对或相对路径。

````
statics=[
{
‘uri’:'/static',
‘文件或目录’:',
}
]
````


api


*处理程序

实例。"routes"中定义的参数将附加到配置对象。如果使用"httpmethodview",则可以从视图类访问配置。

```
r/>``

*扩展类

e附加到这个配置对象
-``application`:当前的应用程序对象,可以用来访问所有的项目应用程序
-``logger`,内置的logger对象



框架调用的扩展类有两个有用的方法:``setup``,``cleanup``。它们都可以是同步或异步的。

-``setup`:在服务器启动之前调用
-``cleanup``:在服务器停止之后调用,如果在``extensions``中配置了多个扩展,那么cleanup方法的执行顺序将从最后一个扩展到第一个

*应用程序对象

应用程序对象表示每个单独的应用程序

-它是扩展实例的成员:

````
)用法:

def setup(self):
self.application

````

-可以在sanic的视图类中访问它。视图导入httpmethodview

class exampleView(httpmethodview)用法:

def get(self,request):
self.application

`````

-您可以通过以下方法获取扩展实例:

``````
```````
获取其他应用程序的扩展名

```
应用程序。获取扩展名('app_name/extension_name')
`````

-获取应用程序相关的日志记录程序

``````
应用程序。获取日志记录程序('logger_name')
```

-获取sanic实例(它是同一个对象"request.app"在视图中)

````
application.sanic
````



欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
Java算法:如何对实体进行分组   C语言中的Java X509EncodedKeySpec#   如何修复java lambda筛选器(缺少返回语句)与future   java有没有办法在Swing中以亚像素精度绘制线条?   HV000030:找不到约束“javax”的验证器。验证。限制。大小为“验证类型”的java。util。可选<java。lang.String>'   CQL中语句的java分页状态   在开发时使用applet查看器的java对象相关applet   java如何从Oracle获取时区ID而不是时区偏移量   java递增变量   java JavaFX InvalizationListener或ChangeListener   java使用多个数据包将大量XMP数据插入jpg?   java允许删除请求   java为什么与类同名的方法不需要返回类型?   java数据转换错误转换   java一旦布尔值为真,如何关闭JFrame?   如何将数据写入两个java。木卫一。一次输出流对象?   mysql如何使用java在SQL中划分两列?   java使用Saxon/XQuery设置URI或目录解析器   mysql java。sql。SQLException:无法将值“20200816 17:33:21.690”从第18列转换为时间戳