1. 安裝Django
[plain] view plain
cd Django-1.4
python setup.py install
2. 安裝postgresql的客戶端:
[plain] view plain
sudo apt-get install -y postgresql-client-9.1 python-psycopg2
3. 新建project:
[plain] view plain
django-admin.py startproject myproject
4. 在myproject下新建app:
[plain] view plain
python manage.py startapp myapp
4. 新增環境變數:
編輯/etc/profile文件,在末尾加入以下語句:
[plain] view plain
<span style="color:#FF0000;"> export PYTHONPATH=$PYTHONPATH:/home/yc/src/myproject
export DJANGO_SETTINGS_MODULE=myproject.settings</span>
5.
假設資料庫已經由Django的另一個應用(名稱為otherapp)建好,資料庫類型是postgresql,名稱為mydb,位於
192.168.1.23。見好的資料庫中有一個表,名稱是otherapp_user,則將otherapp/models.py拷貝到myapp
/models.py。
注意檢查models.py下的class user類的class Meta:部分,如果沒有applabel標簽,則要加上:app_label='otherapp'
再修改/home/yc/src/myproject下的settings.py文件,如下:
[plain] view plain
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql_psycopg2', # Add 'postgresql_psycopg2', 'mysql', 'sqlite3' or 'oracle'.
'NAME': 'mydb', # 'vps2db_test1' Or path to database file if using sqlite3.
'USER': 'postgres', # Not used with sqlite3.
'PASSWORD': '123', # Not used with sqlite3.
'HOST': '192.168.1.23', # Set to empty string for localhost. Not used with sqlite3.
'PORT': '5432', # Set to empty string for default. Not used with sqlite3.
}
}
[plain] view plain
INSTALLED_APPS = (
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.sites',
'django.contrib.messages',
'django.contrib.staticfiles',
'<span style="color:#FF0000;">myapp</span>',
)
6. 在myapp目錄下編寫測試程序
[python] view plain
from models import user
if __name__=="__main__":
try:
u = user.objects.get(id=user_id)
except user.DoesNotExist:
print "user not exist)
return None
else:
return u
『貳』 如何查看django與mysql資料庫連接
創建mysite目錄
django-admin.py startproject mysite這個命令作用是:這將創建在當前目錄創建一個mysite目錄
前提是從命令行上cd到你想儲存你代碼的目錄,然後生成各種子目錄.
首先需要注意的是文件旁祥目錄
這裡面的文件大致作用:
books這個 文件夾存放的是新建資料庫的各種信息
books/templates這個目錄下裝的是網頁的布局,當然這個網頁的布局就是show.html所提供
books/views.py定義函數,並且把show.html引入進去,文件內容如下:
from django.shortcuts import render,render_to_response
from django.template import loader
from books import models
# Create your views here.
def show(request):
# publisher_list = [{'name':"gongye",'city':'beijing'}]
publisher_list = models.Publisher.objects.all()
return render_to_response('show.html',{'publisher_list':publisher_list})
12345678910111213
books/models.py文件存放的碼睜是你所創建的資料庫,代碼如下:
#coding=utf-8
from __future__ import unicode_literals
from django.db import models
# Create your models here.
class Publisher(models.Model):
name = models.CharField(max_length = 30)
address = models.CharField(max_length = 50)
city = models.CharField(max_length = 60)
state_province = models.CharField(max_length = 30)
country = models.CharField(max_length = 50)
website = models.URLField()
# __unicode__這個函數用來返回某個值運模搏可以很好的用於查詢和admin界面的顯示
def __unicode__(self):
return self.name
class Author(models.Model):
first_name = models.CharField(max_length = 30)
last_name = models.CharField(max_length = 40)
email = models.EmailField(blank = True,verbose_name = 'e-mail')
def __unicode__(self):
return u'%s %s'%(self.first_name,self.last_name)
class Book(models.Model):
title = models.CharField(max_length = 100)
author = models.ManyToManyField(Author)
publisher = models.ForeignKey(Publisher)
publication_date = models.DateField(blank = True,null = True)
def __unicode__(self):
return self.title
books下其他的文件就是在創建的過程中自己產生的.
website/templates文件里存放的是各種顯示的靜態網頁布局,這么多html文件,只要你在訪問測試的時候,埠號後面加上html的文件名字就行.比如,我要訪問templates/base.html文件,輸入網址:localhost:8000/base就可以.
website/settings.py文件是Django的設置文檔,裡面的INSTALLED_APPS添加多個應用,比如這裡面我九添加了books應用,代碼如下:
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'books',
『叄』 django怎麼鏈接linux資料庫
編輯 新正含消建的project 配置文件(settings.py):
[root@itchenyi-1 Django-1.3.3]# vi itchenyi/settings.py
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql', # Add 'postgresql_psycopg2', 'postgresql', 'mysql', 'sqlite3' or '舉知oracle'.
'NAME': 'itchenyi_db', # Or path to database file if using sqlite3.
'USER': 'itchenyi', # Not used with sqlite3.
'PASSWORD': 'your password', # Not used with sqlite3.
'host': '', # set to empty string for localhost. Not used with sqlite3.
'PORT': '', # Set to empty string for default. Not used with sqlite3.
}
}
5、切換到新建老弊的project 創建資料庫和表:
[root@itchenyi-1 Django-1.3.3]# cd itchenyi/
[root@itchenyi-1 itchenyi]# python manage.py syncdb
Creating tables ...
Creating table auth_permission
Creating table auth_group_permissions
Creating table auth_group
Creating table auth_user_user_permissions
Creating table auth_user_groups
Creating table auth_user
Creating table auth_message
Creating table django_content_type
Creating table django_session
Creating table django_site
You just installed Django's auth system, which means you don't have any superusers defined.
Would you like to create one now? (yes/no): yes
Username (Leave blank to use 'root'): itchenyi
E-mail address: [email protected]
Password:
Password (again):
Superuser created successfully.
Installing custom SQL ...
Installing indexes ...
No fixtures found.
6、簡單驗證:
[root@itchenyi-1 itchenyi]# python manage.py Shell
Python 2.6.6 (r266:84292, Dec 7 2011, 20:48:22)
[gcc 4.4.6 20110731 (Red Hat 4.4.6-3)] on linux2
Type "help", "right", "credits" or "license" for more information.
(InteractiveConsole)
>>> import MySQLdb
>>> db = MySQLdb.connect(user='itchenyi',db='itchenyi_db',passwd='your password'
,host='localhost')
>>>
『肆』 Python 和 Django 在WIN8下連接資料庫
setting.py:都要配置下
USER, PASSWORD, HOST
MySQL插件 :MySQL-python version 1.2.1p2 or higher.
ENGINE :django.db.backends.mysql
NAME:你的數據咐橡庫名字
PostgreSQL插件:祥老postgresql_psycopg2 地址http://initd.org/psycopg/
ENGINE :django.db.backends.postgresql_psycopg2
NAME:你的資料庫名字
例衡宴旁如我的oracle配置:
『伍』 如何處理django的資料庫連接池
由於創建連接的代價是很高的, 我們每次訪問資料庫都重新創建連接的話是非常消耗性的.
我們可以再程序啟動的時候先創建出一些連接, 放在一個集合中, 訪問資料庫的時候從集合中獲取, 使用結束再放回集合中.
這樣做只是在程序啟動的時候消耗性能去創建連接, 每次訪問資料庫的時候都是從內存中獲取連接, 可以大大提升效率.
注意事項:
由於池中增刪非常頻繁, 使用集合LinkedList效率較高
集合中所有連接都被佔用時創建新連接, 但需要注意連接總數
使用組合模式/動態代理處理釋放連接的方法, 當運行close方法時, 將連接放回池中
關於資料庫連接池:
資料庫連接是一種關鍵的有限的昂貴的資源,這一點在多用戶的網頁應用程序中體現得尤為突出。對資料庫連接的管理能顯著影響到整個應用程序的伸縮性和健壯性,影響到程序的性能指標。資料庫連接池正是針對這個問題提出來的。
資料庫連接池負責分配、管理和釋放資料庫連接,它允許應用程序重復使用一個現有的資料庫連接,而再不是重新建立一個;釋放空閑時間超過最大空閑時間的資料庫連接來避免因為沒有釋放資料庫連接而引起的資料庫連接遺漏。這項技術能明顯提高對資料庫操作的性能。
資料庫連接池在初始化時將創建一定數量的資料庫連接放到連接池中,這些資料庫連接的數量是由最小資料庫連接數來設定的。無論這些資料庫連接是否被 使用,連接池都將一直保證至少擁有這么多的連接數量。連接池的最大資料庫連接數量限定了這個連接池能佔有的最大連接數,當應用程序向連接池請求的連接數超 過最大連接數量時,這些請求將被加入到等待隊列畝岩攔中。
資料庫連接池的最小連接數和最大連接數的設置要考慮到下列幾個因素:
1) 最小連接數是連接池一直保持的資料庫連接,所以如果應用程序對資料庫連接的使用量不大,將會有大量的資料庫連接資源被浪費;棗襲
2) 最大連接數是連接池能申請的最大連接數,如果資料庫連接請求超過此數,後面的資料庫連接請求將被加入到等待隊列中,這會影響之後的資料庫操作。
3) 如果最小連接數與最大連接數相差太大,那麼最迅胡先的連接請求將會獲利,之後超過最小連接數量的連接請求等價於建立一個新的資料庫連接。不過,這些大於最小連接數的資料庫連接在使用完不會馬上被釋放,它將被放到連接池中等待重復使用或是空閑超時後被釋放。
J2EE伺服器啟動時會建立一定數量的池連接,並一直維持不少於此數目的池連接。
調用:客戶端程序需要連接時,池驅動程序會返回一個未使用的池連接並將其表記為 忙。如果當前沒有空閑連接,池驅動程序就新建一定數量的連接,新建連接的數量有配置參數決定。
釋放:當使用的池連接調用完成後,池驅動程序將此連接表記為空閑, 其他調用就可以使用這個連接
『陸』 關於DJANGO連接資料庫和創建模型問題
創建資料庫
選擇開始菜單中→程序→【Management SQL Server 2008】→【SQL Server Management Studio】命令,打開【SQL Server Management Studio】窗口,並使用Windows或 SQL Server身份驗證建立連接。
在【對象資源管理器】窗口中展開伺服器,然後選擇【資料庫】節點
右鍵單擊【資料庫】節點,從彈出來的快捷菜單中選擇【新建資料庫】命令。
『柒』 django python 資料庫同步的方案,請幫我想一想
你都段含打算用django來同步了,哪來得的可否用它來同步的問題呢。
有一個功能叫probe,似乎叫這個名子,你可以用它,根據A庫,自動建立模型。 順便說一下foriegnkey在django的模型庫里也是支持的。 如果不支持,可能你的foreign key太復雜了。
如果可以自動建立模型,那麼其餘的都不是問題了。 不過不建議你這么繞一個大彎路野燃伍,還要用django去寫同步腳本。 它僅僅做管理就可頌或以了。
如果一定要用它做同步,就可以在view里寫一個函數。把你的同步邏輯放進去。 然後用crontab設置一個定時任務,去訪問這個URL就好了。
似乎它沒有tomcat里的那種定時任務功能。 如果你真的要想有,也有開源的插件下載,不過,這就把事情 弄得太復雜 了。
django就作為一個輕量級的WEB管理軟體就可以了。 如果想做復雜的資料庫功能,還是用php和java。
『捌』 django上傳文件到遠程伺服器,怎麼整
使用的是WebClient而不是ftp
首先,我們先來定義一個類UpLoadFile,這個類就是文件上傳類。代碼如下:
public void UpLoadFile(string fileNamePath, string uriString, bool IsAutoRename)
{
int indexOf = 0;
if (fileNamePath.Contains(@"\"))
{
indexOf = fileNamePath.LastIndexOf(@"\");
}
else if (fileNamePath.Contains("/"))
{
indexOf = fileNamePath.LastIndexOf("/");
}
string fileName = fileNamePath.Substring(indexOf + 1);
string NewFileName = fileName;
if (IsAutoRename)
{
NewFileName = DateTime.Now.ToString("yyMMddhhmmss") + DateTime.Now.Millisecond.ToString() + fileNamePath.Substring(fileNamePath.LastIndexOf("."));
}
string fileNameExt = fileName.Substring(fileName.LastIndexOf(".") + 1);
if (uriString.EndsWith("/") == false) uriString = uriString + "/";
uriString = uriString + NewFileName;
/// 創建WebClient實例
WebClient myWebClient = new WebClient();
myWebClient.Credentials = CredentialCache.DefaultCredentials;
// 要上傳的文件
FileStream fs = new FileStream(fileNamePath, FileMode.Open, FileAccess.Read);
//FileStream fs = OpenFile();
BinaryReader r = new BinaryReader(fs);
byte[] postArray = r.ReadBytes((int)fs.Length);
Stream postStream = myWebClient.OpenWrite(uriString, "PUT");
try
{
//使用UploadFile方法可以用下面的格式
//myWebClient.UploadFile(uriString,"PUT",fileNamePath);
if (postStream.CanWrite)
{
postStream.Write(postArray, 0, postArray.Length);
postStream.Close();
fs.Dispose();
}
else
{
postStream.Close();
fs.Dispose();
}
}
catch (Exception err)
{
postStream.Close();
fs.Dispose();
throw err;
}
finally
{
postStream.Close();
fs.Dispose();
}
}
好了,定義好這個類之後就看我們怎麼調用它了。在這里我給出一個例子:
單擊某個按鈕事件:
private void center_Click(object sender, EventArgs e)
{
//上傳文件
//得到文件名,文件擴展名,伺服器路徑
string filePath = filename.Text; //需要上傳的文件,在這里可以根據需要採用OpenFileDialog來獲取文件
string server = @"http://www.thylx.com/」; //上傳路徑
//創建webclient實例
WebClient myWebClient = new WebClient();
try
{
//使用Uploadfile方法上傳
UpLoadFile(filePath, server, true);
MessageBox.Show("上傳成功", "系統提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
return;
}
}
『玖』 pycharm下的django怎麼連接mysql資料庫啊
方法/步驟
修改setting.py裡面的DATABASES元組為
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'books', #你的資料庫名稱
'USER': 'root', #你的資料庫用戶名
'PASSWORD': '', #你的資料庫密碼
'HOST': '', #你的資料庫主機,留空默認為localhost
'PORT': '3306', #你的資料庫埠
}
}
INSTALLED_APPS = (
'books',#你的資料庫名稱
)
在mysql裡面創建books資料庫
檢查配置是否有語法錯誤
使用python manage.py sqlall books 顯示mysql語法
使用python manage.py syncdb同步模型中的資料庫
創建成功!
『拾』 python django 連接sqlserver2005資料庫 經常連接失敗
哦。如果真的存在這樣的問題,可能有幾個方笑雹橋面。
一個是網路環境本身不好。甚至還有網路防火牆。
第二個原因可能是sqlserver2005自身的配置。關於長鏈接的維持,會話失效時間的設置。
第三個原因是所用的驅動程序。我印象中有幾種。我在linux上用了一種很穩定,連接sql server一直沒有發現問題。我是直接驅動的。沒有經過django。
第四,你在django訪問的時候,如果發現連接錯誤,可以要求數據重新連接。這個以前我似乎配置過,幾年不用了。
第五,可碰猛能與你採集的數據有關。你的數據中是否存在數據太大。下載時間過長。以及不合法數據。這些也可能導致django出錯。顯示為連接失敗。估肆舉計是數據錯誤。