html網頁和cgi程序編程,CGI 編程方式學習

1.大家都知道CGI是通用網關接口,可以用來編寫動態網頁。而且CGI可以用很多種語言來寫,用perl來編寫最常見,

我這里就是用perl來編寫做例子。講到編寫CGI編程方式,編寫CGI有兩程編程風格。

(1)功能型編程(function-oriented style)

這種編程方式,不要自己去創建一個對象了,它本身就內置好了一個對象去使用。雖然它內置了一個對象,有些功能并沒有

都加載進去,這里面可以自己定義開起哪些功能。注:在加載功能集時前面要加一上 : 才行

#!/usr/bin/perl?–w

use?CGI?qw(:standard);

一. :cgi

加載cgi-handing methods,如param().

二. :form

加載form表單,如textfied().

三. :html2 :html3 :html4

加載所有html2標簽,加載所有html3標簽,加載所有html4標簽

四. :netscape

加載所有, and

標簽。

五. :html

加載這個就相當于加載了'html2','html3','html4','netscape'。

六. :standard

加載這個就相當于加一個標準的CGI,就等于加載了'html2', 'html3', 'html4', 'form' 和 'cgi'。

七. :all

將加載所有可用的功能集。

例子:這個例子引用的是perldoc-CGI 上面的

#!/usr/bin/perl?-w

use?CGI?qw/:standard/;

print

header,

start_html('Simple?Script'),

h1('Simple?Script'),

start_form,

"What's?your?name??",textfield('name'),p,

"What's?the?combination?",

checkbox_group(-name=>'words',

-values=>['eenie','meenie','minie','moe'],

-defaults=>['eenie','moe']),p,

"What's?your?favorite?color?",

popup_menu(-name=>'color',

-values=>['red','green','blue','chartreuse']),p,

submit,

end_form,

hr,"\n";

if?(param)?{

print

"Your?name?is?",em(param('name')),p,

"The?keywords?are:?",em(join(",?",param('words'))),p,

"Your?favorite?color?is?",em(param('color')),".\n";

}

print?end_html;

還有一些其它的功能,現在就不講了,講一個cgi調試的功能,

-debug

#!/usr/bin/perl?-w

use?CGI?qw/:standard?-debug/;

print

header,

start_html('Simple?Script'),

h1('Simple?Script'),

start_form,

"What's?your?name??",textfield('name'),p,

"What's?the?combination?",

checkbox_group(-name=>'words',

-values=>['eenie','meenie','minie','moe'],

-defaults=>['eenie','moe']),p,

"What's?your?favorite?color?",

popup_menu(-name=>'color',

-values=>['red','green','blue','chartreuse']),p,

submit,

end_form,

hr,"\n";

if?(param)?{

print

"Your?name?is?",em(param('name')),p,

"The?keywords?are:?",em(join(",?",param('words'))),p,

"Your?favorite?color?is?",em(param('color')),".\n";

}

print?end_html;

這樣可調試,用戶輸入的任何信息。

(2)面向對象編程(object-oriented style)

這程編程方式,沒有創建默認的對象,需要自己去創建。

#!/usr/bin/perl?–w

use?CGI;

my?$q?=?new?CGI;

print

$q->header,

$q->start_html(-title=>'The?test?CGI'),

"hello?word!"

$q->end_html;

就這么簡單。

功能型編程沒有面向對象編程靈活,它里面的都定義好了,面向對象的可以想要的時候自己去定義,個人喜歡用面向對象編程方式去編寫CGI的腳本。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/394583.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/394583.shtml
英文地址,請注明出處:http://en.pswp.cn/news/394583.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

20175305張天鈺 《java程序設計》第四周課下測試總結

第四周課下測試總結 錯題 某方法在父類的訪問權限是public,則子類重寫時級別可以是protected。 A .true B .false 正確答案:B 解析:書P122:子類不允許降低方法的訪問權限,但可以提高訪問權限。 復雜題(易錯…

強化學習q學習求最值_通過Q學習更深入地學習強化學習

強化學習q學習求最值by Thomas Simonini通過托馬斯西蒙尼(Thomas Simonini) 通過Q學習更深入地學習強化學習 (Diving deeper into Reinforcement Learning with Q-Learning) This article is part of Deep Reinforcement Learning Course with Tensorflow ??. Check the syl…

BZOJ 1113: [Poi2008]海報PLA

1113: [Poi2008]海報PLA Time Limit: 10 Sec Memory Limit: 162 MBSubmit: 1025 Solved: 679[Submit][Status][Discuss]Description N個矩形,排成一排. 現在希望用盡量少的矩形海報Cover住它們. Input 第一行給出數字N,代表有N個矩形.N在[1,250000] 下面N行,每行給出矩形的長…

Python自動化運維之常用模塊—OS

os模塊的作用:  os,語義為操作系統,所以肯定就是操作系統相關的功能了,可以處理文件和目錄這些我們日常手動需要做的操作,就比如說:顯示當前目錄下所有文件/刪除某個文件/獲取文件大小……  另外&#…

opengl三維圖形圖形顏色_【圖形學基礎】基本概念

右手坐標系。類似OpenGL遵循的右手坐標系:首先它是三維的笛卡爾坐標系:原點在屏幕正中,x軸從屏幕左向右,最左是-1,最右是1;y軸從屏幕下向上,最下是-1,最上是1;z軸從屏幕里…

xp職稱計算機考試題庫,2015年職稱計算機考試XP題庫.doc

2015年職稱計算機考試XP題庫.doc (7頁)本資源提供全文預覽,點擊全文預覽即可全文預覽,如果喜歡文檔就下載吧,查找使用更方便哦!9.90 積分2015年職稱計算機考試XP題庫職稱計算機考試考點精編:工具欄的設置與操作XP中將…

Java基礎學習-Path環境變量的配置

1.為什么要進行Path環境變量的配置程序的編譯和執行需要使用到javac和java命令,所以只能在bin目錄下寫程序,而實際開發中,我們不可能將程序全部寫到bin目錄下,所以我們不許讓javac和java命令在任意目錄下都能夠被訪問。這時候&…

rails 共享變量_如何將Rails實例變量傳遞給Vue組件

rails 共享變量by Gareth Fuller由Gareth Fuller 如何將Rails實例變量傳遞給Vue組件 (How to pass Rails instance variables into Vue components) I’m currently working with a legacy Rails application. We are slowly transitioning the front-end from Rails views to…

Leetcode: Counting Bits

Given a non negative integer number num. For every numbers i in the range 0 ≤ i ≤ num calculate the number of 1s in their binary representation and return them as an array.Example: For num 5 you should return [0,1,1,2,1,2].Follow up:It is very easy to c…

第一個python爬蟲_Python爬蟲01——第一個小爬蟲

Python小爬蟲——貼吧圖片的爬取 在對Python有了一定的基礎學習后,進行貼吧圖片抓取小程序的編寫。 目標: 首先肯定要實現圖片抓取這個基本功能 然后實現對用戶所給的鏈接進行抓取 最后要有一定的交互,程序不能太傻吧 一、頁面獲取 要讓pytho…

Mac下,如何把項目托管到Github上(Github Desktop的使用)

在上一篇中,詳細講解了使用X-code和終端配合上傳代碼的方法,這種方法比較傳統,中間會有坑,英文看起來也費勁,不過Github官方提供了一個Mac版的客戶端,如下圖: 附上下載鏈接:傳送門 下…

計算機網絡英文面試題,計算機網絡面試題整理

GET和POST的區別?GET和POST方法沒有實質上區別,只是報文格式不同。GET和POST是HTTP協議中的兩種請求方法。而 HTTP 協議是基于 TCP/IP 的應用層協議,無論 GET 還是 POST,用的都是同一個傳輸層協議,所以在傳輸上&#x…

利用遞歸求某數的階乘——C/C++

#include<stdio.h>int getFactorial(int n) {if(n0)return 1;else return n*getFactorial(n-1); }int main() {int n,res;scanf("%d",&n);res getFactorial(n);printf("%d",res);return 0; } 轉載于:https://www.cnblogs.com/daemon94011/p/106…

intern_充分利用Outreachy Intern申請流程

internby Joannah Nanjekye喬安娜南耶基(Joannah Nanjekye) 充分利用Outreachy Intern申請流程 (Get the most out of your Outreachy Intern application process) Outreachy gives three-month paid internships for persons that are underrepresented in tech. Interns ar…

Put-Me-Down項目Postmortem2

一.設想和目標二.計劃三.資源四.變更管理五.設計/實現六.測試/發布總結一.設想和目標 1. 我們的軟件要解決什么問題&#xff1f;是否定義得很清楚&#xff1f;是否對典型用戶和典型場景有清晰的描述&#xff1f; 我們的軟件要幫助低頭族控制使用手機時間。功能很明確&#xff0…

大數據實驗報告總結體會_建設大數據中臺架構思考與總結

簡介本文介紹完善的大數據中臺架構了解這些架構里每個部分的位置&#xff0c;功能和含義及背后原理及應用場景。幫助技術與產品經理對大數據技術體系有個全面的了解。數據中臺定義&#xff1a;集成離線數倉與實時數倉&#xff0c;并以多數據源統一整合采集到kafka,再通過kafka進…

半數集問題

給定一個自然數n&#xff0c;由n開始可以依次產生半數集set(n)中的數如下&#xff1a; (1) n ∈set(n)&#xff1b; (2) 在n的左邊加上一個自然數&#xff0c;但該自然數不能超過最近添加的數的一半&#xff1b; (3) 按此規則進行處理&#xff0c;直到不能再添加自然數為止。…

微型計算機控制理論基礎答案,微型計算機控制技術試卷c

微型計算機控制技術試卷a潘新民 微型計算機控制技術實用教程微型計算機控制技術試卷C一、選擇題(本題共10小題&#xff0c;每小題 1.5分&#xff0c;共15分)1. DAC0832的VREF接-5V&#xff0c;IOUT1接運算放大器異名端&#xff0c;輸入為1000000B &#xff0c;輸出為( )。A. 5V…

aws lambda_四處奔走:初學者遇到AWS Lambda

aws lambdaby Janaka Bandara通過Janaka Bandara 四處奔走&#xff1a;初學者遇到AWS Lambda (Running around the block: a beginner meets AWS Lambda) Computing! It sure has a very long, vivid (and sometimes awkward) history. Some key milestones include:計算&…

python打開快捷方式_Python創建啟動目錄的快捷方式,python,到

# -*- coding:utf-8 -*-# author&#xff1a;lizonezhiimport osimport sysimport pythoncomimport win32com.client as clientdef createShortCut(filename): # 目前創建的無起始位置"""filename should be abspath, or there will be some strange errors&quo…