如何用python和web.py搭建一个网站 如何用python和web.py搭建一个网站
\u5982\u4f55\u7528python\u548cweb.py\u642d\u5efa\u4e00\u4e2a\u7f51\u7ad9\u73af\u5883\u642d\u5efa\u3002
\u73af\u5883\u642d\u5efa\u6bd4\u8f83\u7e41\u7410\uff0c\u8bb0\u5f97\u5f53\u65f6\u4e5f\u662f\u6ee1\u4e16\u754c\u627e\u8d44\u6599\uff0c\u6240\u4ee5\u6211\u76f4\u63a5\u6253\u5305\u597d\u4e86\u6240\u6709\u7684\u6587\u4ef6\uff08apache(\u5df2\u7ecf\u653e\u8fdb\u53bbpython-wscgi) + web.py+apache\u6240\u9700\u8981\u7684vs2010\u8fd0\u884c\u5e93+python+\u7f51\u7ad9\u6587\u4ef6\uff09\uff0c\u76f4\u63a5\u89e3\u538b\u653e\u4e0a\u53bb\u5c31\u80fd\u7528\u3002\u6709\u9700\u8981\u540c\u5b66\u8ba9\u6211\u4f20\u4e00\u4e2a\u6216\u8005\u7f51\u76d8\u53d1\u4e00\u628a\u5c31\u884c\u3002
\u88c5apache\u5e76\u914d\u7f6epython-wscgi\uff0c\u8fd9\u4e2a\u6bd4\u8f83\u60e8\uff0c\u82b1\u4e86\u597d\u591a\u65f6\u95f4\u53bb\u641c\u7d22\u624d\u641e\u5b9a\uff0c\u4e3b\u8981\u662fwindows\u4e0a\u7684python-wscgi\u4e0d\u597d\u96be\u627e\u3002\u4e3a\u4e86\u8282\u7701\u4ee5\u540e\u7684\u5f00\u53d1\u65f6\u95f4\uff0c\u6211\u628a\u914d\u7f6e\u597d\u7684apache\u7ed9\u6253\u5305\u4e86\uff0c\u53cd\u6b63\u4e5f\u662f\u7eff\u8272\u7684\uff0c\u65b0\u5efa\u7f51\u7ad9\u53ea\u9700\u8981\u5728\u670d\u52a1\u5668\u4e0a\u914d\u7f6e\u5f00\u673a\u542f\u52a8apache\uff0c\u5e76\u5728apache\u7684config\u91cc\u9762\u4fee\u6539\u4e0b\u81ea\u5df1\u7f51\u7ad9\u8def\u5f84\u5c31\u884c\u30022. \u5f00\u53d1\u3002
\u5f00\u53d1\u9636\u6bb5\u5012\u662f\u6ca1\u4ec0\u4e48\u597d\u8bf4\u7684\uff0cweb.py\u5b98\u65b9\u6709\u6559\u7a0b\uff0c\u4e0d\u8fc7\u8fd9\u91cc\u6211\u9700\u8981\u63d0\u51e0\u70b9\u5efa\u8bae\uff1a\u5982\u679c\u53ef\u4ee5\u52a1\u5fc5\u5168\u7ad9\u7528utf-8\u7f16\u7801\u3002
\u5efa\u7acb\u6570\u636e\u5e93\u5efa\u8bae\u5199\u4e2a\u751f\u6210\u811a\u672c\uff0c\u6bd4\u5982createDataBase.py\uff0c\u6709\u6539\u52a8\u91cd\u65b0\u8fd0\u884c\u4e00\u904d\uff0c\u4e0d\u8981\u8bd5\u7528ide\u53bb\u5efa\u3002
\u4e00. \u57fa\u672c\u6982\u5ff5
\u56e0\u7279\u7f51\u8d77\u6e90\u4e8e\u7f8e\u56fd\u56fd\u9632\u90e8\u9ad8\u7ea7\u7814\u7a76\u8ba1\u5212\u7ba1\u7406\u5c40\u5efa\u7acb\u7684\u963f\u5e15\u7f51\u3002\u7f51\u7ad9(Website)\u5f00\u59cb\u662f\u6307\u5728\u56e0\u7279\u7f51\u4e0a\u6839\u636e\u4e00\u5b9a\u7684\u89c4\u5219\uff0c\u4f7f\u7528HTML(\u6807\u51c6\u901a\u7528\u6807\u8bb0\u8bed\u8a00\u4e0b\u7684\u4e00\u4e2a\u5e94\u7528)\u7b49\u5de5\u5177\u5236\u4f5c\u7684\u7528\u4e8e\u5c55\u793a\u7279\u5b9a\u5185\u5bb9\u76f8\u5173\u7f51\u9875\u7684\u96c6\u5408\u3002
\u4e8c. \u5efa\u8bbe\u7f51\u7ad9\u8003\u8651\u56e0\u7d20
1\u3001\u7f51\u7ad9\u7684\u5ba2\u6237\u670d\u52a1\u7fa4\u4f53\uff1b
2\u3001\u7f51\u7ad9\u7684\u5185\u5bb9\u65b9\u5411\u548c\u6027\u8d28\uff1b
3\u3001\u7f51\u7ad9\u7684\u529f\u80fd\u63cf\u8ff0\u548c\u7ed3\u6784\u5206\u6790\uff1b
4\u3001\u7f51\u7ad9\u7684\u7528\u6237\u4f53\u9a8c\uff1b
5\u3001\u7f51\u7ad9\u7684\u76c8\u5229\u65b9\u5f0f\uff1b
6\u3001\u7f51\u7ad9\u7684\u672a\u6765\u53d1\u5c55\u65b9\u5411\u3002
\u5148\u4ecedjango\u5165\u95e8\uff0c\u5b83\u7684\u6587\u6863\u53ef\u4ee5\u8bf4\u662f\u5f00\u6e90\u6846\u67b6\u4e2d\u6700\u597d\u7684\uff0c\u5faa\u5e8f\u6e10\u8fdb\uff0c\u9002\u5408\u65b0\u624b\u3002orm\uff0cmvc\uff0curl\u5339\u914d\uff0csignal\uff0chttp\u8bf7\u6c42\uff0csession\uff0ccookie\uff0c\u7f13\u5b58\uff0cweb\u5b89\u5168\u7b49\u6982\u5ff5\u90fd\u8bb2\u7684\u5f88\u6e05\u6670\uff0c\u751a\u81f3\u5728\u4e0d\u600e\u4e48\u4e86\u89e3python\u7684\u60c5\u51b5\u4e0b\u4e5f\u80fd\u786c\u7740\u5934\u76ae\u628a\u5c0f\u9879\u76ee\u505a\u51fa\u6765\u3002\uff08\u60f3\u505a\u6210\u5927\u7f51\u7ad9\uff0c\u4e00\u4e2a\u6846\u67b6\u662f\u8fdc\u8fdc\u4e0d\u591f\u7684\uff0c\u8981\u5b66\u7684\u4e1c\u897f\u592a\u591a\u4e86\uff09
django\u4e00\u4e2a\u6846\u67b6\u628aweb\u5f00\u53d1\u7684\u5927\u591a\u6570\u529f\u80fd\u90fd\u641e\u5b9a\u4e86\uff0c\u4f46\u4e5f\u9020\u6210\u4e86\u6846\u67b6\u672c\u8eab\u6bd4\u8f83\u91cd\u3002\u5982\u679c\u5bf9web\u5f00\u53d1\u6709\u4e00\u5b9a\u7ecf\u9a8c\u4e86\uff0c\u53c8\u9700\u8981\u4e00\u5b9a\u7684\u7075\u6d3b\u6027\uff0c\u53ef\u4ee5\u770b\u770bflask\u3002\u8fd9\u662f\u4e00\u4e2a\u66f4\u65b0\u7684\u751f\u6001\u7cfb\u7edf\u3002\u65b0\u7684\u6846\u67b6\u5f80\u5f80\u4f1a\u53d6\u7cbe\u534e\u53bb\u7cdf\u7c95\uff0c\u4e5f\u610f\u5473\u7740\u793e\u533a\u548c\u914d\u5957\u7684\u6210\u719f\u5ea6\u4f1a\u900a\u8272\u4e00
环境搭建比较繁琐,记得当时也是满世界找资料,所以我直接打包好了所有的文件(apache(已经放进去python-wscgi) + web.py+apache所需要的vs2010运行库+python+网站文件),直接解压放上去就能用。有需要同学让我传一个或者网盘发一把就行。
如果在windows,最好在win7以上版本,我用win8。linux则ubuntu较好,建议12.04以上版本,不过linux我仅仅是开发用过,最终运行的服务器是采用windows+apache:
安装python2.7.10,可以去官方网站下载,注意要把python路径加入系统环境变量。版本不能低于2.7.9,但不能用3.0以上,web.py支持不好。
安装web.py, 官方网下载来装就行,记得是解压后进去:python setup.py install
安装wingIDE,这个是最好用的python编辑器,可惜只能有几天试用,我就是不停的试用进行开发,用它的好处就是代码可以跳转并且支持调试,需要调试直接将程序文件run起来,单步下段点都可以。
装apache并配置python-wscgi,这个比较惨,花了好多时间去搜索才搞定,主要是windows上的python-wscgi不好难找。
为了节省以后的开发时间,我把配置好的apache给打包了,反正也是绿色的,新建网站只需要在服务器上配置开机启动apache,并在apache的config里面修改下自己网站路径就行。
2. 开发。
开发阶段倒是没什么好说的,web.py官方有教程,不过这里我需要提几点建议:
如果可以务必全站用utf-8编码。
建立数据库建议写个生成脚本,比如createDataBase.py,有改动重新运行一遍,不要试用ide去建。
绛旓細浣犲彲浠浣跨敤python鐨剋ebbrowser搴撴潵妯℃嫙娴忚鍣細 url = '' # Open URL in a new tab, if a browser window is already open.webbrowser.open_new_tab(url + 'doc/') # Open URL in new window, raising the window if possible.webbrowser.open_new(url)鎴栬呬娇鐢╬ython鐨勭涓夋柟搴擄紝 selenium...
绛旓細- 鏍囩绠$悊妯″潡锛氱郴缁熺鐞嗗憳鐧诲叆鍚庯紝鍙互娴忚鏌ョ湅鐩稿唽锛屽垹闄ょ浉鍐岀瓑鍔熻兘銆- 鏂囩珷銆佹爣绛炬祻瑙堟ā鍧楋細娓稿杩涘叆绯荤粺鍚庯紝鍙互娴忚鏂囩珷鍒楄〃锛屽彲浠ユ寜鏍囩鏌ョ湅鏂囩珷銆- 璇勮绯荤粺妯″潡锛氭父瀹㈠彲浠ュ彂琛ㄥ拰鏌ョ湅鍒汉鐨勮瘎璁恒3. 瀹夎涓庝娇鐢锛- 椤圭洰閲囩敤Django妗嗘灦杩涜寮鍙戙侱jango鏄竴涓敤浜庡揩閫web寮鍙戠殑浼樺紓鏂规锛堝嚑涔庢病鏈変箣涓...
绛旓細http://code.google.com/p/pywinauto/ 鏉ヤ釜灏忎緥瀛愶細app.Notepad.MenuSelect("Help->About Notepad")app.AboutNotepad.OK.Click()app.Notepad.Edit.TypeKeys ("pywinauto Works!", with_spaces = True)鍛靛懙锛屽己澶у惂 3銆浣跨敤Python杩涜Web鑷姩鍖栨祴璇 浣跨敤Python杩涜Web鑷姩鍖栨祴璇曠殑宸ュ叿鏈夊緢澶氾紝杩欓噷灏...
绛旓細session绠$悊銆丆SRF闃蹭吉閫犺姹傘丗orm琛ㄥ崟澶勭悊銆丱RM鏁版嵁搴撳璞″寲銆佽嚜宸辩殑templatelanguage瀵规柊鎵嬫潵璇达細鐢web.py鎴杅lask瀛︿範web缂栫▼锛岀煡閬撳暐鏄疨OST鍟ユ槸GET鍟ユ槸cookie绛夌瓑绛夌啛鎮墂eb寮鍙戜箣鍚庡啀鍐冲畾鏄惁鐢―jango杩欑被fullstack鐨勬鏋讹紝杩樻槸鐢╨ightweight妗嗘灦鑷繁鎼厤ORM绛夋ā鍧桺.S.Django鐨凮RM鏄垜瑙佽繃鐨Python閲屾渶寮哄ぇ...
绛旓細瀛python鍒杩樹笉浼氱敤杩欎簺蹇嵎閿簡 銉笺佺紪杈(Editing)1.Ctr+Space鍩烘湰鐨勪唬鐮佸畬鎴愶紙绫汇佹柟娉曘佸睘鎬э級銆2.Ctrl+Alt+Space蹇熷鍏ヤ换鎰忕被銆3.Ctrl+Shift+Enter璇彞瀹屾垚銆4.Ctrl+P鍙傛暟淇℃伅锛鍦鏂规硶涓皟鐢ㄥ弬鏁帮級銆5.Ctrl+Q蹇熸煡鐪嬫枃妗c6.F1澶栭儴鏂囨。銆7.Shift+F1澶栭儴鏂囨。銆傝繘鍏web鏂囨。涓婚〉銆8.ctrl+...
绛旓細浠庝竴瀹氱殑瑙掑害涓婃潵璇达紝Python鏄潪甯镐笉閿欑殑缂栫▼璇█锛岄傚悎闆跺熀纭锛屽鍒濆鑰呭崄鍒嗗弸濂斤紝鍙互骞挎硾搴旂敤鍦ㄤ紬澶氶鍩熴傚嚑涔庢墍鏈夊ぇ涓瀷浜掕仈缃戜紒涓氶兘鍦浣跨敤Python瀹屾垚鍚勭鍚勬牱鐨勪换鍔°傚浜庣▼搴忓憳鏉ヨ锛孭ython灏卞儚鑳舵按涓鏍凤紝鍙互鏇村ソ鐨勫府鍔╂垜浠畬鎴愮紪绋嬪伐浣溿侾ython璇█鎷ユ湁浼楀搴旂敤棰嗗煙锛1銆web搴旂敤寮鍙戯細Python缁忓父鐢ㄤ簬web...
绛旓細瀛︿範鐩爣锛氭帉鎻Python鐨鍩烘湰璇硶锛屽叿澶囧熀纭鐨勭紪绋嬭兘鍔涳紱鎺屾彙Linux鍩烘湰鎿嶄綔鍛戒护锛屾帉鎻ySQL杩涢樁鍐呭锛屽畬鎴愰摱琛岃嚜鍔ㄦ彁娆炬満绯荤粺瀹炴垬銆佽嫳姹夎瘝鍏搞佹瓕璇嶈В鏋愬櫒绛夐」鐩傜浜岄樁娈碉細web鍏ㄦ爤杩欎竴閮ㄥ垎涓昏瀛︿範web鍓嶇鐩稿叧鎶鏈紝浣犻渶瑕佹帉鎻tml銆乧ssJavaScript銆丣Query銆丅ootstrap銆亀eb寮鍙戝熀纭銆乂ue銆丗Iask Views銆丗Iask妯℃澘銆...
绛旓細鏈瘒鏂囩珷缁欏ぇ瀹跺垎浜殑鍐呭鏄濡備綍鍒╃敤Python鐖彇缃戞槗浜戦煶涔愮儹闂ㄨ瘎璁,鏈夌潃涓瀹氱殑鍙傝冧环鍊,鏈夐渶瑕佺殑鏈嬪弸鍙互鍙傝冧竴涓嬪墠瑷鏈杩戝湪鐮旂┒鏂囨湰鎸栨帢鐩稿叧鐨勫唴瀹,鎵璋撳阀濡囬毦涓烘棤绫充箣鐐,瑕佹兂杩涜鏂囨湰鍒嗘瀽,棣栧厛寰楀埌鏈夋枃鏈惂銆傝幏鍙栨枃鏈殑鏂瑰紡鏈夊緢澶,姣斿浠庣綉涓婁笅杞界幇鎴愮殑鏂囨湰鏂囨。,鎴栬呴氳繃绗笁鏂规彁渚涚殑API杩涜鑾峰彇鏁版嵁銆備絾鏄湁鐨勬椂鍊欐垜浠...
绛旓細杩欑瘒鏂囩珷涓昏浠嬬粛浜鍦≒ython涓娇鐢℉TML妯$増鐨勬暀绋,HTML妯$増涔熸槸Python鐨勫悇澶ф鏋朵笅鐨勪竴涓熀鏈姛鑳,闇瑕佺殑鏈嬪弸鍙互鍙傝冧笅銆Web妗嗘灦鎶婃垜浠粠WSGI涓嫰鏁戝嚭鏉ヤ簡銆傜幇鍦紝鎴戜滑鍙渶瑕佷笉鏂湴缂栧啓鍑芥暟锛屽甫涓奤RL锛屽氨鍙互缁х画Web App鐨勫紑鍙戜簡銆備絾鏄紝Web App涓嶄粎浠呮槸澶勭悊閫昏緫锛屽睍绀虹粰鐢ㄦ埛鐨勯〉闈篃闈炲父閲嶈銆傚湪鍑芥暟涓...
绛旓細鍏蜂綋姝ラ 鑾峰彇鏁翠釜椤甸潰鏁版嵁棣栧厛鎴戜滑鍙互鍏堣幏鍙栬涓嬭浇鍥剧墖鐨勬暣涓〉闈俊鎭俫etjpg.py coding=utf-8import urllibdef getHtml(url):page = urllib.urlopen(url)html = page.read() return htmlhtml = getHtml("http://tieba.baidu.com/p/2738151262")print html Urllib 妯″潡鎻愪緵浜嗚鍙web椤甸潰鏁版嵁鐨...