顯示具有 資料庫 標籤的文章。 顯示所有文章
顯示具有 資料庫 標籤的文章。 顯示所有文章

2015年3月7日 星期六

MongoDB介紹

什麼是MongoDB?芒果嗎?可以吃嗎?

節自維基百科

MongoDB是一種檔案導向資料庫管理系統,由C++撰寫而成,以此來解決應用程式開發社群中的大量現實問題。2007年10月,MongoDB由10gen團隊所發展。2009年2月首度推出。
她是一個非常有彈性且可以具規模的資料儲存系統(資料庫),可以水平擴展(scale out),也可以使用RDBMS(關聯式資料)庫常用的功能,如第二索引、範圍查詢以及排序。她支援MapReduce形式的聚集及地理資訊索引。

結構

使用RDBMS跟他做個對映。

RDBMS         MongoDB

Database                            Database
Table                                   Collection
Record/Row                        Document
Primary Key                                   _id

核心概念

文件是一個有序的鍵值(Key/value)集合(Set)。

玩一玩她

如果你只想玩玩,可以試試她官方網站的Try It或者註冊MongoLab(她有512MB容量的免費額度)。

2014年10月25日 星期六

Tornado (一個Python微型的Framework)


有段時間沒來更新這個網誌了,最近在如火如荼的進行著專題抗戰,現在就來寫一篇最近學的framework。

系統環境:Ubuntu 14.04 Server、Python3.4、Tornado 4.0.2、MongoDB 2.6、PyMongo


Tornado全稱Tornado Web Server,是一個用Python語言寫成的Web伺服器兼Web應用框架,由FriendFeed公司在自己的網站FriendFeed中使用,被Facebook收購以後框架以開源軟體形式開放給大眾。     以上節錄自Wiki

簡介就自行去估一下吧!就不進行簡介了。
我的架構大概像這樣,有點在抄django的寫法。
/ static/         -->  靜態檔案。
/ templates/  -->  範本(HTML檔案)。
/ manage.py -->  執行的檔案。
/ view.py       -->  主程式。
/ models.py  -->  模型(資料庫操作)。

manage.py
# -*- coding: utf-8 -*-
#!/usr/bin/env python3.4

import os, sys, views
import tornado.httpserver, tornado.ioloop, tornado.web, tornado.autoreload
from tornado.options import define, options
define('port', default=8000, help='run on the given port', type=int)

def main():
    tornado.options.parse_command_line()
    app = views.App()
    server = tornado.httpserver.HTTPServer(app)
    server.listen(options.port)
     
    tornado.autoreload.start()
    for dir, _, files in os.walk('templates'):
        [tornado.autoreload.watch(dir + '/' + f) for f in files if not f.startswith('.')]
    tornado.ioloop.IOLoop.instance().start()

if __name__ == '__main__':
    main()

view.py
# -*- coding: utf-8 -*-
#!/usr/bin/env python3.4
import models, os
import tornado.httpserver, tornado.ioloop, tornado.web


class App(tornado.web.Application):
    # Application init settings
    def __init__(self):
    handlers = [
        (r'/', MainHandler),
    ]
    settings = {
        'template_path': os.path.join(os.path.dirname(__file__), 'templates'),
        'static_path': os.path.join(os.path.dirname(__file__), 'static'),
        'cookie_secret':
        'GKPu279PjY28Kkb2z3TA6N3ue497Z3haiQHzT4ti6JWrq5ds8H2GP6qT85ZR77MU',
        '/login': True,
        'xsrf_cookies': True,
        'debug': True
    }
    self.db = models.dbConnection()
    tornado.web.Application.__init__(self, handlers, **settings)

class MainHandler(tornado.web.RequestHandler):
    def get(self):
        self.render('index.html')

models.py
# -*- coding: utf-8 -*-
#!/usr/bin/env python3.4

from pymongo import MongoClient

settings = {
    'host': '資料庫位置',# Database's host.
    'port': '資料庫的Port', # Database's port.
   
}

def dbConnection():
    # 資料庫連線
    db = MongoClient(**settings)['自行設定你的資料庫']
    return db

index.html
跟上篇我自己的宣告












2014年9月9日 星期二

Mezzanine(一個基於django的CMS框架)

我只想來做一下紀錄。我的系統如下,Win7 Pro,Python34,django 1.6.7,mezzanine 3.1.10,Mariadb 10.0.13。

1. 安裝
pip3 install mezzanine

非必要步驟:安裝購物車
pip3 install -U cartridge

2.建立專案(XXX為你的專案)
mezzanine-project XXX

3.開啟專案中的__init__.py,加入以下程式碼(主要是因為Python3只能使用pymysql來做連結)。
import pymysql
pymysql.install_as_MySQLdb

4.開啟專案中的settings,修改為以下程式碼。
TIME_ZONE = 'Asia/Taipei'

LANGUAGE_CODE = "zh-tw"

USE_I18N = True

DATABASES = {
    "default": {
        # Add "postgresql_psycopg2", "mysql", "sqlite3" or "oracle".
        "ENGINE": "django.db.backends.mysql",
        # DB name or path to database file if using sqlite3.
        "NAME": "您的資料庫名字",
        # Not used with sqlite3.
        "USER": "您的資料庫使用者",
        # Not used with sqlite3.
        "PASSWORD": "密碼",
        # Set to empty string for localhost. Not used with sqlite3.
        "HOST": "localhost",
        # Set to empty string for default. Not used with sqlite3.
        "PORT": "3306",
}

5.建立資料庫 syncdb(基本上一律都是yes,建立管理者帳號時,密碼確認兩次。)
python3 manaage.py createdb

6.啟動服務 runserver
python3 manage.py runserver


好啦!目前就如此,其他請自行發揮或者等我可以找到怎麼變成個人化。



2013年5月22日 星期三

PHP Oracle 10g 連接資料庫教學

來教教PHP Oracle10連線的教學,如果有幫助到您,我是很開心,因為我曾經因為他整夜沒睡。

先去網路上搜尋,AppServ把它裝起來。


把MySQL與phpAdmin選項移掉。


設定你的網址


解壓縮你下載好的instantclient_10_2,解壓縮到你要的路徑,幫他設定Path之後從重新開機。

進去到Windows目錄下的php.ini,裡面用Ctrl+f找下面幾個資料把它前面的;刪除。
extension=php_oracle.dll
extension=php_oci8.dll
extension=php_pdo_oci.dll
extension=php_pdo_oci8.dll






再來到www下面,建立一個db_conn.php程式碼如下。


<?php
    $dbconn=OCILogon("帳號", "密碼", "(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=163.17.9.68)(PORT=1521))(CONNECT_DATA=(SID=db)))");
    if($dbconn!=false)//判斷是否連結成功
         echo “連結成功!";
    else
         echo “連結失敗!";
//以上為PHP連線判斷

//以下為撈資料庫內的指令
    $sql = "SELECT * FROM 會員";
    $oci_rs = oci_parse($dbconn,$sql);
    oci_execute($oci_rs,OCI_DEFAULT);
    $rows= OCIFetchstatement($oci_rs,$results);
    $keys=array_keys($results);
    $table = '<table border="1">';
    foreach($keys as $key)
   {
       $table .= " <TH>$key</TH>\n";
    }
    $table .= " </TR>\n";
    for($i=0;$i<$rows;$i++)
   {
       $table .= "<TR>";
       foreach($results as $spalte)
       {
           $data = $spalte[$i];
           $table .= " <TD>$data</TD>";
       }
       $table .=" </TR>";
   }
   echo $table;
?>


參考此篇網址:http://dream-hua.net/wordpress/?p=1325