十四个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实现.路由系统.模板引擎渲染. 进入正题. 一. 基础 ...
随机推荐
- 使用BizyAir,没有显卡,也能玩AI绘图
或许很多人跟我一样,没有显卡,但又很想玩AI绘图,但本地绘图怕是无缘了,只能借助云GPU的方式了. 今天跟大家分享一下一个简单目前可白嫖无门槛的方法实现无显卡也能玩AI绘图. 方案就是ComfyUI+ ...
- 仅花一天时间,开发者重制 32 年前经典 Mac 应用!
导读:在这个快节奏的技术世界里,重温过去并从中汲取灵感总是一件有趣的事情.今天要介绍的是一款仅用一天时间重制的经典 Macintosh 应用--Stapler.这款应用最初发布于1992年,现在由一位 ...
- 最短路之Dijkstra
Dijkstra算法: Dijkstra是一种求解 非负权图 上单源最短路径的算法. 思路:将所有结点分为两个集合:已经确定最短路径的点(S)和未确定最短路长度的点集(T),开始时所有点都属于T 初始 ...
- 《Programming from the Ground Up》阅读笔记:p103-p116
<Programming from the Ground Up>学习第7天,p103-p116总结,总计14页. 一.技术总结 1.读写文件 (1)linux.s linux.s: #fi ...
- 初三年后集训测试 T2--牛吃草
初三年后集训测试 $T 2 $ 牛吃草 一言难尽 $$HZOI$$ $ Description $ 由于现代化进程的加快,农场的养殖业也趋向机械化. \(QZS\) 决定购置若干台自动喂草机来减少自己 ...
- Python 潮流周刊#67:uv 的重磅更新(摘要)
本周刊由 Python猫 出品,精心筛选国内外的 250+ 信息源,为你挑选最值得分享的文章.教程.开源项目.软件工具.播客和视频.热门话题等内容.愿景:帮助所有读者精进 Python 技术,并增长职 ...
- win10自动更新导致的任务栏假死,右键单击任务栏延迟菜单延迟出现
系统是win10企业版,前天晚上回家之前,电脑还是好好的,然后前天早上跑过来以后,发现电脑自动重启了,我还以为是办公室停电了之类的(现在想了一下愚蠢,停电不会自动开机),没想到是自动更新 然后我发现, ...
- Kubelet证书自动续签(为 kubelet 配置证书轮换)
1.概述 Kubelet 使用证书进行 Kubernetes API 的认证. 默认情况下,这些证书的签发期限为一年,所以不需要太频繁地进行更新. Kubernetes 包含特性 Kubelet 证书 ...
- docker 参数'--privileged' 的作用
在Docker中,--privileged 参数给予容器内的进程几乎相同的权限,就像它们在宿主机上一样.这意味着容器可以访问宿主机的所有设备,并且可以执行一些通常需要高级权限的操作,例如加载内核模块. ...
- 教你一招,测试人员如何通过AI提高工作效率!
伴随着AI技术的兴起,像OpenAI推出的ChatGPT.Microsoft发布的Microsoft 365 Copilot.阿里的通义千问.百度的文心一言.华为的盘古大模型等.很多测试人员开始担心, ...