国产成人精品无码青草_亚洲国产美女精品久久久久∴_欧美人与鲁交大毛片免费_国产果冻豆传媒麻婆精东

15158846557 在線咨詢 在線咨詢
15158846557 在線咨詢
所在位置: 首頁 > 營銷資訊 > 網(wǎng)站運營 > web有哪些常見框架,你還不知道?

web有哪些常見框架,你還不知道?

時間:2023-09-14 14:24:01 | 來源:網(wǎng)站運營

時間:2023-09-14 14:24:01 來源:網(wǎng)站運營

web有哪些常見框架,你還不知道?:

1、前言

目前,有非常多的Python框架,用來幫助你更輕松的創(chuàng)建web應用。這些框架把相應的模塊組織起來,使得構建應用的時候可以更快捷,也不用去關注一些細節(jié)(例如socket和協(xié)議),所以需要的都在框架里了。接下來我們會介紹不同的選項。




經(jīng)過初期的不起眼,Python已經(jīng)成為互聯(lián)網(wǎng)最流行的服務端編程語言之一。根據(jù)W3Techs的統(tǒng)計,它被用于很多的大流量的站點很多的大流量的站點很多的大流量的站點,超過了ColdFusion, PHP, 和http://ASP.NET和http://ASP.NET和http://ASP.NET。其中超過98%的站點運行的是Python 2.0,只有1%多一點的站點運行3.0。




2、框架讓開發(fā)更輕松

今天,有著大量的框架Python框架,它們可以讓web應用的開發(fā)更輕松。這些框架把不同的模塊集成在一起,讓你更快的構架程序,而不用關注一些細節(jié)(例如socket和協(xié)議),框架提供了需要的所有功能。




作為分成兩部分的系列文章的第一部分,我們會介紹一些最流行的Python框架。雖然大部分現(xiàn)代的web框架都運行在服務端,也有一些框架開始嘗試與客戶端代碼結合,可以在客戶端運行(例如Skulpt和Trinket)。Python框架通常分為全??蚣芎头侨珬?蚣?。全??蚣苋珬?蚣苋珬?蚣茉O計從用戶體驗到數(shù)據(jù)庫的所有技術,非全??蚣軇t并不包含整個開發(fā)的全部技術。

此外還有一種微框架,也屬于非全棧框架,但是更輕量級。有的情況下,微框架是比較適合的,有時又適合使用全??蚣堋T谖恼碌牡诙糠治覀儠θ珬?蚣芎臀⒖蚣茏鲆粋€比較。

3、Django

DjangoDjangoDjango恐怕是最有代表性的Python框架了。它是一個遵循MMVC架構模式的開源框架。它的名字來自Django Reinhardt,一個法國作曲家和吉他演奏家,很多人認為他是歷史上最偉大的吉他演奏家。位于堪薩斯洲的Lawrence城的Lawrence Journal-World報社有兩位程序員,Adrian Holovaty和Simon Willison,他們在2003的時候開發(fā)出了Django,用于給報紙開發(fā)web程序。

Django內置了模板引擎,同時也通過OOTB來支持流行的Jinja2引擎。它還支持基于正則的URL分發(fā),可以通過簡單的URL來完成復雜的映射。

Django的優(yōu)勢之一是只需要單獨的安裝包來安裝。其他的一些類似的框架需要下載很多組件才能開始工作。而且,Django還有完善的保持更新的文檔,對于開源項目來說這通常是短板。它是一個健壯的框架,很好的集成了很多來自社區(qū)的插件和擴展。項目背后的社區(qū)看上去也組織的很好,這從它非常完善的文檔和教程就可以看出來。

我學習的第一個框架就是django,方便入門,上手也比較快。個人覺得django的model不好用,主要是跨庫聯(lián)表不友好。

創(chuàng)建一個項目:

$ pip install django$ django-admin startproject djdemo cd djdemo $ django-admin startapp djapp $ tree -L 3 .├── djapp│ ├── __init__.py│ ├── admin.py│ ├── apps.py│ ├── migrations│ │ └── __init__.py│ ├── models.py│ ├── tests.py│ └── views.py├── djdemo│ ├── __init__.py│ ├── __pycache__│ │ ├── __init__.cpython-37.pyc│ │ └── settings.cpython-37.pyc│ ├── settings.py│ ├── urls.py│ └── wsgi.py└── manage.py下面我給出我一個項目的Django的目錄結構。是django的經(jīng)典目錄結構形式:

django很簡單,Django生態(tài)很完備,基于django開發(fā),一般需要的功能,都可以找到已經(jīng)有的輪子。開發(fā)效率很高。django下的開發(fā)就是往框架中的填代碼。另外就是不夠靈活,太重。

django很多好用的腳手架

[django] check compilemessages createcachetable dbshell diffsettings dumpdata flush inspectdb loaddata makemessages makemigrations migrate runserver sendtestemail shell showmigrations sqlflush sqlmigrate sqlsequencereset squashmigrations startapp startproject test testserver

4、TurboGears

urboGears是在幾個著名的Python項目上構建起來的一個框架,如SQLAlchemy,WebOb,Repoze,Genshi。在某種意義上,TurboGears是將多個已經(jīng)建立的開放平臺粘合在一起。和Django一樣,它采用MVC架構。它最近還包含一個“最小模式”,使其可以作為一個微框架。




TurboGears是由Kevin Dangoor在2005年開發(fā)的。他在當年9月將其作為一個開源項目發(fā)布。2013年,項目開發(fā)人員遷移到支持Python 3,拋棄了他們曾經(jīng)寫的Pylons代碼。TurboGears的優(yōu)點包括:




支持聚合

強大的對象關系映射器

事務系統(tǒng)支持多數(shù)據(jù)庫間事務

多數(shù)據(jù)庫支持

以可重用的代碼片段為模板

具有很多的靈活性,可以對接非標準組件

支持分片

模板系統(tǒng)使設計師的設計更輕松

TurboGears

安裝

$ pip install tg.devtools $ gearbox --helpusage: gearbox [--version] [-v | -q] [--log-file LOG_FILE] [-h] [--debug] [--relative] TurboGears2 Gearbox toolset optional arguments: --version show program's version number and exit -v, --verbose Increase verbosity of output. Can be repeated. -q, --quiet Suppress output except warnings and errors. --log-file LOG_FILE Specify a file to log output. Disabled by default. -h, --help Show this help message and exit. --debug Show tracebacks on errors. --relative Load plugins and applications also from current path. Commands: help print detailed help for another command makepackage Creates a basic python package patch Patches files by replacing, appending or deleting text. quickstart Creates a new TurboGears2 project scaffold Creates a new file from a scaffold template serve Serves a web application that uses a PasteDeploy configuration file setup-app Setup an application, given a config file tgext Creates a tgext.* package創(chuàng)建項目

$ gearbox quickstart tgdemo// 會生成很多文件 .├── MANIFEST.in├── README.txt├── __pycache__│ └── setup.cpython-37.pyc├── development.ini├── migration│ ├── env.py│ ├── script.py.mako│ └── versions│ └── empty.txt├── setup.cfg├── setup.py├── test.ini├── tgdemo│ ├── __init__.py│ ├── config│ │ ├── __init__.py│ │ ├── app_cfg.py│ │ ├── environment.py│ │ └── middleware.py│ ├── controllers│ │ ├── __init__.py│ │ ├── controller.py.template│ │ ├── error.py│ │ ├── root.py│ │ └── secure.py│ ├── i18n│ │ └── ru│ ├── lib│ │ ├── __init__.py│ │ ├── app_globals.py│ │ ├── base.py│ │ └── helpers.py│ ├── model│ │ ├── __init__.py│ │ ├── auth.py│ │ └── model.py.template│ ├── public│ │ ├── css│ │ ├── favicon.ico│ │ ├── fonts│ │ ├── img│ │ └── javascript│ ├── templates│ │ ├── __init__.py│ │ ├── __pycache__│ │ ├── about.xhtml│ │ ├── data.xhtml│ │ ├── environ.xhtml│ │ ├── error.xhtml│ │ ├── index.xhtml│ │ ├── login.xhtml│ │ ├── master.xhtml│ │ └── template.xhtml.template│ ├── tests│ │ ├── __init__.py│ │ ├── functional│ │ └── models│ └── websetup│ ├── __init__.py│ ├── bootstrap.py│ └── schema.py└── tgdemo.egg-info ├── PKG-INFO ├── SOURCES.txt ├── dependency_links.txt ├── entry_points.txt ├── not-zip-safe ├── requires.txt └── top_level.txt 22 directories, 48 files上面 是按python包的方式生成的代碼形式,方便打包分發(fā)。

用戶只需要修改下面目錄中的代碼即可

TurboGears使用示例

from wsgiref.simple_server import make_server from tg import expose, TGController, AppConfig class RootController(TGController): @expose() def index(self): return "<h1>Hello World</h1>" config = AppConfig(minimal=True, root_controller=RootController()) print "Serving on port 8080..." httpd = make_server('', 8080, config.make_wsgi_app()) httpd.serve_forever()

5、web2py

web2py是一個開源框架,允許開發(fā)者快速創(chuàng)建動態(tài)交互式的網(wǎng)站。它的設計目標是消除拖慢開發(fā)的大量重復編程任務,比如創(chuàng)建基本的表格。它在最初是作為工具開發(fā)的。隨后被Django和Ruby on Rails模仿,Ruby on Rails是個Ruby的框架。同TurboGears一樣,它使用MVC架構。

最開始的源代碼是由Massimo DiPierro在2007年開放的。在那時,它被稱為Enterprise Web Framework(EWF)。由于命名沖突,它改過好幾次名字,最后在1.16版確定為當前的web2py。使用web2py開發(fā)的應用包括Movuca內容管理系統(tǒng),,名為LinkFindr的網(wǎng)絡診斷工具,以及Instant Press博客平臺。在2011年,web2py被評為最好的開源開發(fā)軟件,。第二年,又斬獲InfoWorld的年度技術獎。

與Django一樣,web2py也具有廣泛的文檔。新開發(fā)者和高級開發(fā)者可以免費下載它的。完整開發(fā)手冊web2py的一些優(yōu)點包括:

容易使用——作為一個魯棒的全棧式框架,它無需其他依賴就可以工作,容易學習和部署,安裝也無需任何配置文件,一旦下載完成,安裝完畢,就可以用了。開發(fā)者會獲得一個數(shù)據(jù)庫,一個基于web的IDE,web服務器以及一個有多個核心對象組成的強大API。

安全性出色——Web2py的模板語言減少了黑客使用跨站腳本的危險,抽象層在創(chuàng)建表單時有表單域有效性檢查,避免SQL注入,也阻止了跨站請求偽造攻擊(csrf攻擊)。會話被存儲在服務器上,阻止壞的執(zhí)行者把瀏覽器cookie弄亂,并且每個密碼都是哈希后存儲的。

web2py的一些缺點包括:

在常規(guī)基礎上使用管理的接口不太容易

管理的接口沒有權限

沒有內建的單元測試支持

開發(fā)速度迅速,所有的函數(shù)都有缺省行為,表單時自動生成的,高層次的小部件和應用網(wǎng)格都是內建的

目錄結構

project/ README LICENSE VERSION > this web2py version web2py.py > the startup script anyserver.py > to run with third party servers ... > other handlers and example files gluon/ > the core libraries packages/ > web2py submodules dal/ contrib/ > third party libraries tests/ > unittests applications/ > are the apps admin/ > web based IDE ... examples/ > examples, docs, links ... welcome/ > the scaffolding app (they all copy it) ABOUT LICENSE models/ views/ controllers/ sessions/ errors/ cache/ static/ uploads/ modules/ cron/ tests/ ... > your own apps examples/ > example config files, mv .. and customize extras/ > other files which are required for building web2py scripts/ > utility and installation scripts handlers/ wsgihandler.py > handler to connect to WSGI ... > handlers for Fast-CGI, SCGI, Gevent, etc site-packages/ > additional optional modules logs/ > log files will go in there deposit/ > a place where web2py stores apps temporarily

6、Flask

Flask是一個基于Jinja2和Werkzeug的python微框架,和其他框架類似,它是BSD授權的,一個有少量限制的免費軟件許可。使用Flask的網(wǎng)站包括領英LinkedIN和Pinterest。Flask有以下特點:

內建的單元測試支持

模板使用Jinjia2

大量文檔

客戶端會話使用安全cookies

開發(fā)服務器和調試器

Restful請求

與WSGI 1.0兼容

基于unicode

大量的擴展

Flask是一個年輕的框架,2010年誕生,F(xiàn)lask的目標是不給程序員強加限制,允許你使用自己的數(shù)據(jù)庫對象關系映射,模板引擎,會話中間件以及你的項目所需的其他組件,在我看來這就是這個微框架的用意。

我想說像Flask這樣的框架更適合有經(jīng)驗的開發(fā)者,并不是小規(guī)模應用程序所必須的,當然,如果你只想做一個簡單的REST API,那么Flask當然再好不過了。

flask我個人使用的也是比較多的。flask是微框架,比較靈活,適合小型項目。

示例代碼

from flask import Flask app = Flask(__name__) @app.route('/')def hello(): return 'Hello, World!'Bottle

和flask一樣,Bottle是一個服務器網(wǎng)關接口(WSGI)網(wǎng)絡框架。作為一個文件,它不依賴于Python標準庫外的任何庫。Marcel Hellkamp于2009年寫它的時候,它僅由包含模板、路由和一個WSGI抽象層的最小工具開始。對于程序員尋找靈活性和基本功能、構建簡單的應用程序和網(wǎng)站、創(chuàng)建一個Web API來說,這小并且強大的框架是極好的。

它的優(yōu)點包括:

內建的快速模板引擎和對Jinja2,Mako和Cheetah的支持

可以訪問上傳,cookies,表單數(shù)據(jù),標題,和其他元數(shù)據(jù)的大量工具

支持fapws3,Google App Engine,CherryPyPaste的內建HTTP開發(fā)服務器

支持動態(tài)URLs

Bottle的另一個優(yōu)點是,它的小巧精干便于嵌入在一個較大應用程序中而不必擔心系統(tǒng)依賴關系。如果你想用一個簡單的,干凈的和快速的框架并且它沒有過多冗余,來創(chuàng)建小的應用程序,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)多框架

雖然很難相信,但這些只是少數(shù)幾十個開發(fā)人員可以使用Python框架,。http://Python.org報道,Django,TurboGears和web2py是最受歡迎的完整選項。為了在框架優(yōu)化方面提供一個全面的觀察,這里我們添加了兩個高級形態(tài)的微型框架。有著熱情的追隨者其他框架包括 Pyramid,web.py ,Bobo , Albatross, 和 CherryPy。

找到正確的適合選擇

正確框架的選擇取決于項目的規(guī)模,它的通信需求,它是否是一個獨立的應用程序,定制需求的級別,開銷,和許多其他因素。同樣重要的是,它取決于哪個框架適合你個人的工作方式?;仡欉@些項目并下載他們最新的版本。在計劃一個主要旅行之前,試開一下確保你在一個合適的車輛中。

感謝每一個認真閱讀我文章的人?。?!

如果下面這些資料用得到的話可以直接拿走:

1、自學開發(fā)或者測試必備的完整項目源碼與環(huán)境

2、測試工作中所有模板(測試計劃、測試用例、測試報告等)

3、軟件測試經(jīng)典面試題

4、Python/Java自動化測試實戰(zhàn).pdf

5、Jmeter/postman接口測試全套視頻獲取

我個人整理了我這幾年軟件測試生涯整理的一些技術資料,包含:電子書,簡歷模塊,各種工作模板,面試寶典,自學項目等。如果在學習或工作中遇到問題可以直接進群詢問,群里也會有大神幫忙解答,








關鍵詞:

74
73
25
news

版權所有? 億企邦 1997-2025 保留一切法律許可權利。

為了最佳展示效果,本站不支持IE9及以下版本的瀏覽器,建議您使用谷歌Chrome瀏覽器。 點擊下載Chrome瀏覽器
關閉