Karrigell_PHP チュートリアルの開始

WBOY
リリース: 2016-07-13 17:29:36
オリジナル
871 人が閲覧しました

因为python并不是特别为web开发而生,所以现在很多的python使用者都在开发能够让python运行于web的框架.Karrigell就是现在为数众多的python/web框架之一.本文将对Karrigell做简要的介绍.

简介

Karrigell是一个功能强大且灵活的python/web框架,为web开发提供了多种解决方案.并且,很重要的,它的安装和使用都非常的简单.即使是python的初学者,也不会在使用Karrigell的时候犯迷糊,并且Karrigell也没有因为结构简单而限制python的一些特性.它提供了自己的web服务器完成工作,但是也非常容易的和其他的web服务器(例如apache)结合工作,所以如果你选择了Karrigell,你仍然可以使用之前一直在使用的web服务器.

这篇文章将从Karrigell的安装开始说起,介绍数个Karrigell的重要特性.

安装Karrigell

上面说了,Karrigell的安装一点都不麻烦.你要做的第一步是到 SourceForge 下载最新的Karrigell,当你下载了zip包后,将其解压缩到一个容易找到的目录.然后直接双击Karrigell.py启动Karrigell的内置web服务器.如果你现在并不想把Karrigell和其他的web服务器结合使用,那Karrigell的安装到此就结束了.

但如果你想要设置你的web服务器来和Karrigell结合,我们拿apache来举例子.我们现在需要Karrigell在apache的后台运行,来使apache将相关的请求传送给Karrigell
因为apache一般会运行在80端口,你需要给Karrigell设置一个其他的运行端口.有两个方法来达到这个目的,其一是使用命令行来完成,或者可以改变Karrigell的配置文件.先来看如何用命令行,我们将在8080端口运行Karrigell.

C:Karrigell>Karrigell.py -P 8080

第二种,你需要找到Karrigell.ini,然后加上这么一句

port=8080

现在你需要配置apache将有关的请求转向到Karrigell.一般来说,你希望apache可以处理任何的静态文件请求,比如php.你可以和apache共享同一个路径, 也可以设立单独的路径..然后设置那些文件需要apache把请求传递给Karrigell,你需要添加下面的内容到apache的 httpd.conf 文件.

RewriteEngine On
RewriteRule ^/(.*).py(.*) http://localhost:8080/$1.py$2 [L,P]
RewriteRule ^/(.*).ks(.*) http://localhost:8080/$1.ks$2 [L,P]
RewriteRule ^/(.*).hip(.*) http://localhost:8080/$1.hip$2 [L,P]
RewriteRule ^/(.*).pih(.*) http://localhost:8080/$1.pih$2 [P]

如果你想, 你可以设置全部的特定文件请求都转给Karrigell.在本文中,我们将使用testarea这个路径,所以我们这样设置httpd.conf:

RewriteEngine On
RewriteRule ^/testarea(.*) http://localhost:8080/testarea$1 [P]

当然你可以这样:

RewriteEngine On
RewriteRule ^/testarea/(.*).py(.*)
http://localhost:8080/testarea/$1.py$2 [L,P]
RewriteRule ^/testarea/(.*).ks(.*)
http://localhost:8080/testarea/$1.ks$2 [L,P]
RewriteRule ^/testarea/(.*).hip(.*)
http://localhost:8080/testarea/$1.hip$2 [L,P]
RewriteRule ^/testarea/(.*).pih(.*)
http://localhost:8080/testarea/$1.pih$2 [P]

Scripts和Services

Python scripts和Karrigell services将是python开发者使用Karrigell最容易接触的两个概念.Python scripts就是python的脚本,开发者使用print语句输出到用户浏览器的内容.如果你还不明白,建立一个testarea目录,然后我们将开始创建我们的第一个Python scripts.新建一个文件test.py:

print "

"
print "Hello!"
print "

"
print "Karrigell is configured and working."
print "
"

在浏览器中打开这个文件,如果之前你的Karrigell都正确设置,那你将会看到输出的内容.
Python scripts也可以容易的使用表单.让我们再来创建一个简单的页面,用户可以在这个页面输入自己的名字.新建文件askname.py:

if QUERY.has_key ( "name" ):
   print "Your name is", _name + "."
else:
   print "What is your name?
"
   print "

"
   print "
"
   print ""
   print "
"

Karrigell services的编写和Python scripts类似.这个的作用是映射请求到用户指定的方法.指定方法的名字通过跟在Karrigell services后面进行传递.比如,下面这个url将会调用test这个方法

http://localhost/testarea/test.ks/test

让我们实际编写下这个例子

def Index():
print "インデックス関数"
def test():
print "テスト関数"

メソッド名を渡さずにこれらの Python スクリプトを使用すると、プログラムはデフォルトでインデックス メソッドを実行し、メソッド名 test が渡された場合、存在しないメソッドを呼び出すと例外がスローされます。
Karrigell サービスを使用してフォームから渡されたデータを処理するのも非常に簡単です。ascname.ks を作成しましょう。

defindex(): print "あなたの名前は何ですか?
"
print "

"
print "< br />"
print ""
print "
"
def nameSubmit ( name ):
print "あなたの名前は", name + "."

もちろん、メソッドへの外部パブリック アクセスを許可することは非常に危険です。権限のないユーザーがメソッドにアクセスできないようにするには、メソッドに次のようにプレフィックスを付けます。

def _private():

パス
_private メソッドにアクセスしようとすると例外がスローされます。

HIPを使用する

askname.py には、注目すべき点が 1 つあります。このコードには print ステートメントが含まれています。幸いにも、これは HTML Inside Python と呼ばれる機能です。これらの厄介な print ステートメントはすべて削除され、askname.py から TML Inside Python への変換も非常に簡単です。それらの print ステートメントを削除して、ファイルの名前を askname.hip に変更するだけです。

f QUERY.has_key ( "name" ):

"あなたの名前は", _name + "."

else: "あなたの名前は何ですか?
"
"

"
"
"
""
"
"


それは HTML Inside Python です。Karrigell はファイルを検査し、必要な箇所に自動的に出力を追加します。これは、Karrigell がいかに簡単に学習できるかを示しています。

HTML内のPython

Karrigell は Python Inside の HTML を提供するため、通常どおり、Python Inside HTML も提供します。そして、最終結果をユーザーのブラウザーに送信します。簡単な例として、random.pih を作成しましょう。 <% import random %>

乱数: <% print random.random() %>

ご覧のとおり、Python Inside HTML の概念は非常にシンプルです。実際、コード ブロックはさらに単純になります。

しかし、フォーム データの処理など、より複雑なロジックを扱う場合はどうすればよいでしょうか? フォーム データは、Python スクリプトで処理されるのと同じように処理できます。これは、askname.py askname.pih

のレプリカです。

<% if QUERY.has_key ( "name" ): %> あなたの名前は <%= _name %> です。

<% end %>

<% else: %>

あなたの名前は?





<% end %>


<% end %> の使用に注意してください。これは、上記の条件文のインデントと同じように、コード ブロックの終わりをマークします。これは、コードをマークするためにも使用されるインデント タグを使用することです。インデント


<インデント>
<% if QUERY.has_key ( "name" ): %>

あなたの名前は <%= _name %> です。

<% else: %>

あなたの名前は何ですか?




< /form>




その他の機能

このようにしてみましょう。タグは Python スクリプト、tagtest.py を通じて使用できます。

ROM HTMLTags インポート *

印刷センター ( B ( "テスト。" ) )

セッションも利用可能

www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/531672.html技術記事 Python は Web 開発用に特別に設計されていないため、多くの Python ユーザーは現在、Python を Web 上で実行できるようにするフレームワークを開発しています。Karrigell は、数ある Python/Web フレームワークの 1 つです...
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート