十四个Python Web框架Hello Wold示例
1、Dganjo
新建一个django项目,HelloWorld
mkdir django
cd django
django-admin startproject HelloWorld #新建项目
cd HelloWorld
python manage.py startapp Hello #新建应用
vim Hello/views.py
#coding=utf-8
from django.shortcuts import render
from django.http import HttpResponse def index(req):
return HttpResponse('Hello World!')
vim HelloWorld/HelloWorld/urls.py
from django.conf.urls import url
from django.contrib import admin
from Hello import views as Hello_views urlpatterns = [
url(r'^admin/', admin.site.urls),
url(r'^$', Hello_views.index),
]
vim HelloWorld/HelloWorld/settings.py
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'Hello',
]
运行启动命令:
python manage.py runserver
2、Flask
from flask import Flask app = Flask(__name__) @app.route("/")
def hello_world():
return "Hello, World!"
if __name__ == '__main__':
app.run(debug=True)
3、Pyramid
from wsgiref.simple_server import make_server
from pyramid.config import Configurator
from pyramid.response import Response def hello_world(request):
return Response('Hello World!') if __name__ == '__main__':
with Configurator() as config:
config.add_route('hello', '/')
config.add_view(hello_world, route_name='hello')
app = config.make_wsgi_app()
server = make_server('0.0.0.0', 6543, app)
server.serve_forever()
4、web.py
import web urls = (
'/(.*)', 'hello'
)
app = web.application(urls, globals()) class hello:
def GET(self, name):
if not name:
name = 'World'
return 'Hello, ' + name + '!' if __name__ == "__main__":
app.run()
5、Tornado
import tornado.ioloop
import tornado.web class MainHandler(tornado.web.RequestHandler):
def get(self):
self.write("Hello, world!") def make_app():
return tornado.web.Application([
(r"/", MainHandler),
]) if __name__ == "__main__":
app = make_app()
app.listen(8888)
tornado.ioloop.IOLoop.current().start()
6、TurboGears
from wsgiref.simple_server import make_server
from tg import MinimalApplicationConfigurator
from tg import expose, TGController # RootController of our web app, in charge of serving content for /
class RootController(TGController):
@expose(content_type="text/plain")
def index(self):
return 'Hello World!' # Configure a new minimal application with our root controller.
config = MinimalApplicationConfigurator()
config.update_blueprint({
'root_controller': RootController()
}) # Serve the newly configured web application.
print("Serving on port 8080...")
httpd = make_server('', 8080, config.make_wsgi_app())
httpd.serve_forever()
7、CherryPy
import cherrypy class HelloWorld(object):
@cherrypy.expose
def index(self):
return 'Hello World!' cherrypy.config.update({'server.socket_host': '0.0.0.0'})
cherrypy.quickstart(HelloWorld(), '/')
8、Falcon
from wsgiref.simple_server import make_server
import falcon
class ThingsResource(object):
def on_get(self, req, resp):
resp.status = falcon.HTTP_200
resp.body = 'Hello world!\n'
app = falcon.App()
things = ThingsResource()
app.add_route('/things', things)
if __name__ == '__main__':
with make_server('', 8000, app) as httpd:
print('Serving on port 8000...')
httpd.serve_forever()
9、Asgineer
import asgineer @asgineer.to_asgi
async def hello_word(request):
path = request.path
if path == '/':
return f"<html>Hello world! <b>{request.path}</b></html>" if __name__ == '__main__':
asgineer.run('uvicorn', hello_word, 'localhost:8080')
10、Bottle
from bottle import route, run, template @route('/hello/<name>')
def index(name):
return template('<b>Hello {{name}}</b>!', name=name) run(host='localhost', port=8080)
11、Twisted
from twisted.web import server, resource
from twisted.internet import reactor, endpoints class Counter(resource.Resource):
isLeaf = True
numberRequests = "Hello World!" def render_GET(self, request):
self.numberRequests += 1
request.setHeader(b"content-type", b"text/plain")
content = u"{}\n".format(self.numberRequests)
return content.encode("ascii") endpoints.serverFromString(reactor, "tcp:8080").listen(server.Site(Counter()))
reactor.run()
12、Hug
import hug @hug.get('/')
def happy_birthday():
return "Hello World!"
hug -f hello_world.py
13、FastAPI
from typing import Optional
from fastapi import FastAPI app = FastAPI() @app.get("/")
def read_root():
return {"Hello": "World"} @app.get("/items/{item_id}")
def read_item(item_id: int, q: Optional[str] = None):
return {"item_id": item_id, "q": q}
uvicorn main:app --reload
14、Quart
from quart import Quart app = Quart(__name__) @app.route('/')
async def hello():
return 'Hello World!'
app.run()
十四个Python Web框架Hello Wold示例的更多相关文章
- 浅谈Python web框架
一.Python web框架 Web Framework,Ruby的世界Rails一统江湖,而Python则是一个百花齐放的世界,各种micro-framework.framework不可胜数,不完全 ...
- 第三百三十四节,web爬虫讲解2—Scrapy框架爬虫—Scrapy爬取百度新闻,爬取Ajax动态生成的信息
第三百三十四节,web爬虫讲解2—Scrapy框架爬虫—Scrapy爬取百度新闻,爬取Ajax动态生成的信息 crapy爬取百度新闻,爬取Ajax动态生成的信息,抓取百度新闻首页的新闻rul地址 有多 ...
- 第三百二十四节,web爬虫,scrapy模块介绍与使用
第三百二十四节,web爬虫,scrapy模块介绍与使用 Scrapy是一个为了爬取网站数据,提取结构性数据而编写的应用框架. 其可以应用在数据挖掘,信息处理或存储历史数据等一系列的程序中.其最初是为了 ...
- 一步一步理解 python web 框架,才不会从入门到放弃
要想清楚地理解 python web 框架,首先要清楚浏览器访问服务器的过程. 用户通过浏览器浏览网站的过程: 用户浏览器(socket客户端) 3. 客户端往服务端发消息 6. 客户端接收消息 7. ...
- python web框架介绍对比
Django Python框架虽然说是百花齐放,但仍然有那么一家是最大的,它就是Django.要说Django是Python框架里最好的,有人同意也有人 坚决反对,但说Django的文档最完善.市场占 ...
- python三大web框架Django,Flask,Flask,Python几种主流框架,13个Python web框架比较,2018年Python web五大主流框架
Python几种主流框架 从GitHub中整理出的15个最受欢迎的Python开源框架.这些框架包括事件I/O,OLAP,Web开发,高性能网络通信,测试,爬虫等. Django: Python We ...
- 第三百一十四节,Django框架,自定义分页
第三百一十四节,Django框架,自定义分页 自定义分页模块 #!/usr/bin/env python #coding:utf-8 from django.utils.safestring impo ...
- 一文读懂Python web框架和web服务器之间的关系
我们都知道 Python 作为一门强大的语言,能够适应快速原型和较大项目的制作,因此被广泛用于 web 应用程序的开发中. 在面试的过程中,大家或多或少都被问到过这样一个问题:一个请求从浏览器发出到数 ...
- Django,Flask,Tornado三大框架对比,Python几种主流框架,13个Python web框架比较,2018年Python web五大主流框架
Django 与 Tornado 各自的优缺点Django优点: 大和全(重量级框架)自带orm,template,view 需要的功能也可以去找第三方的app注重高效开发全自动化的管理后台(只需要使 ...
- Python Web框架本质——Python Web开发系列一
前言:了解一件事情本质的那一瞬间总能让我获得巨大的愉悦感,希望这篇文章也能帮助到您. 目的:本文主要简单介绍Web开发中三大基本功能:Socket实现.路由系统.模板引擎渲染. 进入正题. 一. 基础 ...
随机推荐
- FreeSWITCH对接http协议的tts服务
操作系统 :CentOS 7.6_x64 FreeSWITCH版本 :1.10.9 FreeSWITCH里面有个mod_tts_commandline模块,可以用来对接http协议的tts服务,今 ...
- 修改 Ubuntu 文件夹为英文
如果你在安装 Ubuntu 时,语言选了中文,那么系统自动创建的文件夹也会是中文(下载.图片 等).有时这会造成不便.可以通过以下命令将文件夹改为英文: LANG=C LC_ALL=C xdg-use ...
- Homebrew 使用
使用 brew install brew uninstall|remove|rm brew list # *显示已安装软件列表 brew upgrade # 更新 Homebrew brew sear ...
- Kubernetes-10:Ingress-nginx介绍及演示
Ingress介绍 Ingress是什么? ingress 是除了 hostport nodeport clusterIP以及云环境专有的负载均衡器外的访问方式,官方提供了Nginx ingres ...
- 云存储抽象层-FluentStorage
FluentStorage 是一个.NET云存储抽象层,支持多种云服务提供商.它提供了一个统一的API来处理不同云服务提供商的Blob存储(如AWS S3, GCP, FTP, SFTP, Azure ...
- 海光 FTPM 运行报错:Fapi_Provision_Finish() ErrorCode (0x00060025) No EK certificate found.
使用的是海光 CPU 提供的基于固件的 FTPM,错误原因是海光没有给 TPM 提供相应的 EK 证书.从而导致Fapi_Provision()接口无法通过证书的校验.关于Fapi_Provision ...
- 所见即所得,赋能RAG:PDF解析里的段落识别
前几天,有一位用户使用OCR产品识别多栏论文后向我们询问:要怎么解决不合适的断句.分段以及错误阅读顺序的问题? 我们用一个相似案例为大家直观展示这位用户遇到的情况. 如图中的多栏期刊,如果用OCR识别 ...
- CoST: 时间序列预测中分离季节趋势特征的对比学习《CoST: CONTRASTIVE LEARNING OF DISENTANGLED SEASONAL-TREND REPRESENTATIONS FOR TIME SERIES FORECASTING》(时序预测、表征学习、对比学习、因果关系、分离趋势季节特征)
2022/6/18 11:32,简单记录一下随笔(因为不写点东西,根本注意力不集中,看5分钟可能要摸鱼10分钟,还是要写点,突然发现,草稿箱里最早的一篇没写完的博客是去年的7月2日,救命啊,我拖了一年 ...
- JavaScript Library – Svelte
前言 上一回我介绍了 Alpine.js.作为我开发企业网站 draft 版本的 render engine. 用了一阵子后,我觉得它真的非常不好用.所以打算换一个. 前端有好几个 framework ...
- uni-app v3.0.0-alpha-3090220231010001
https://uniapp.dcloud.net.cn/tutorial/ #-------------------------------------------------------- 未分类 ...