2012/10/18

在Eclipse中,Tomcat未顯示修改過的頁面或程式執行結果

在Eclipse中若使用Tomcat作為網頁伺服器,除了自己按restart之外,只要有存檔的動作,Tomcat都會重load一次。但有時候Tomcat不會把最新的內容也load一次,可能是其中有快取的部份,這樣很容易造成雖然有改程式,但還是顯示舊的結果。


 可能的解決方法:

  • 停止Tomcat,重開Tomcat。
  • 在Tomcat上點右鍵,選擇"Clean"。
  • 在Tomcat上點右鍵,選擇"Clean Tomcat Work Directory"。
  • 將專案移出Tomcat,執行空的Tomcat,然後停止,再把專案放回。
  • 在Eclipse的功能列Project→Build Project 或Build All。
  • 在Eclipse的功能列Project→Clean。
  • 刪除Server,重開Eclipse,然後重新安裝Server。

以上方法可交互利用。

2012/10/09

2012/09/17

在Eclipse中操作MongoDB

目的:按參考網址的內容,我們決定使用mongoengine作為在 Django內對MongoDB資料庫的Adapter,但按照首頁所示,mongoengine其實也是把pymongo包起來,也就是依賴於pymongo


我們到這兩個網站各下載其壓縮檔並解壓縮後,在Eclipse中依Windows→Preference→Pydev→{你安裝的python語言}→Library中,按New Folder後加入解壓縮後的資料夾即可,如下圖:







參考:
  1. Setting up a Django Environment (Eclipse, MongoDB, MySQL, Python)
  2. Django+MongoDB
  3. 优雅的在django框架里使用mongodb

2012/09/08

在開一個新的Django專案時遇到「Django not found」

如果你是使用Windows,在Eclipse中用PyDev開發Django,在開一個新的Django專案時遇到「Django not found」,如下圖:




這表示你未安裝Django。到Django的官方網站下載,可能是Django-x.x.x.tar.gz,並使用壓縮軟體
如7-up解出資料夾到你要的地方(推薦目的地為C:\Program Files\PythonXX\Lib\site-packages\,PythonXX為你安裝的Python版本)。



在Eclipse裡,Windows→Preferences→PyDev→Interpreter -Python的Libraries裡,引入Django資料夾(New Folder),Eclipse會自動掃瞄處理。


參考:
Installing Django On Windows

2012/08/28

不論是否有錯誤的地址都要寄出信給正確地址收件者

目的:在JavaMail中,會遇到要寄給很多個Recipients的狀況,但是在預設的情況下,Mail Server 若發現提交的多個InternetAddress或Address中有一個有錯,例如"User unknown"或是"Invalid Address",則會直接停止動作不寄信,就算其他的地址是正確的也不會寄。

解法:將mail.smtp.sendpartial屬性設為true

Properties props = new Properties();
props.put("mail.smtp.sendpartial", "true");


注意:
  • 是"true"不是true,要傳進去的是字串才對。
  • 就算設成true也不一定會被 Mail Server接受,最終還是看Mail Server。
  • 建議還是在使用前,先將地址做些Regexp驗證,順便把valid跟invalid的Address做分類。可搜尋email address pattern,有各式各樣的Pattern可用。

參考:

2012/08/18

No module named MySQLdb

若使用

sudo apt-get install python-mysqldb


可能會在python的命令列模式下得到此錯誤

>>> import MySQLdb
Traceback (most recent call last):
File "", line 1, in
ImportError: No module named MySQLdb

改使用

pip install MySQL-python

來安裝就ok了

2012/08/09

用jQuery動態地從外部檔案載入所需的欄位

目的:針對處理到的不同資料型態,顯示不同的欄位,甚至不按順序顯示

目前有一個HTML檔案和JavaScript片段

src.html

JavaScript

重點:
載入後的data(即欄位或表格)必須在callback裡做處理,若在/*A*/位置或/*B*/位置處理,將有可能會無法得到暫存table中的資料,這是因為JavaScript是asynchronous的,即非同步在進行,跟一般程式語言逐行執行不同。


參考:
Why I can't manipulate rows which are loaded from external HTML file using jQuery?