標籤:
運行: python 若出錯說明系統沒有按裝python否則可越過安裝python這步
安裝python
下載 wget http://python.org/ftp/python/2.7/Python-2.7.tar.bz2
tar -jxvf Python-2.7.tar.bz2
cd Python-2.7
./configure
make all
make install
安裝Django
下載 wget https://www.djangoproject.com/m/releases/1.8/Django-1.8.2.tar.gz
tar xzvf Django-1.8.2.tar.gz
cd Django-1.8.2
adduser python
sudo python setup.py install
安裝setuptools
下載 wget https://enterprise-storage-os.googlecode.com/files/setuptools-0.6c11.tar.gz
tar xzvf setuptools-0.6c11.tar.gz
cd setuptools-0.6c11
python setup.py install
安裝mysql-python
下載wget http://sourceforge.net/projects/mysql-python/files/mysql-python-test/1.2.3b1/MySQL-python-1.2.3b1.tar.gz/download
tar xvzf MySQL-python-1.2.3b1.tar.gz
cd MySQL-python-1.2.3
python setup.py build
sudo python setup.py install
以上都安裝完成後就可進行下一步了。
建立第一個 Django 項目,並在其中建立一個應用程式
首先,可能要建立一個用於儲存 Django 項目的檔案夾,從作業系統提示符進入此檔案夾:
例如:mkdir Django
cd Django
然後發出以下命令:
django-admin.py startproject myproj
在此項目內建立一個應用程式
chmod +x manage.py
./manage.py startapp myapp
可能出現:
raise ImproperlyConfigured("Error loading either pysqlite2 or sqlite3 modules (tried in that order): %s" % exc)
django.core.exceptions.ImproperlyConfigured: Error loading either pysqlite2 or sqlite3 modules (tried in that order):
No module named _sqlite3
解決方案:
vi myproj/settings.py
找到 DATABASES
修改為
DATABASES = {
‘default‘: {
‘ENGINE‘: ‘django.db.backends.mysql‘, #設定為mysql資料庫
‘NAME‘: ‘test‘, #mysql資料庫名
‘USER‘: ‘root‘, #mysql使用者名稱,留空則預設為當前linux使用者名稱
‘PASSWORD‘: ‘123456‘, #mysql密碼
‘HOST‘: ‘‘, #留空預設為localhost
‘PORT‘: ‘‘, #留空預設為3306連接埠
}
}
注:上面的中文注釋,在不指定Python檔案編碼的情況下可能會引起SyntaxError,所以不要複製這些中文注釋。
這一步相當於選擇了資料庫的連線物件。
vi myproj/urls.py
在urlpatterns裡添加一條記錄:
from myapp import views as myapp_views
url(r‘^articles/‘, myapp_views.latest_article),
在TEMPLATE裡添加一條記錄:
vi myproj/settings.py
‘DIRS‘: [os.path.join(BASE_DIR, ‘templates‘),],
與模型的對象關係映射
vi myapp/models.py
添加
class student(models.Model):
id = models.IntegerField(primary_key=True)
name = models.CharField(max_length=20, null = True)
class = models.CharField(max_length=25)
age = models.CharField(max_length=25)
class Meta:
db_table = "student"
註上面有個錯誤的class為python中的保留字,可以修改資料庫相對應的欄位
(修改方法:alter table student change class myls varchar(30);
在上述樣本中,需要注意的事項是類 Meta 的使用,可以通過此類為模型提供中繼資料選項。在此樣本中,
您使用 db_table 選項顯式指定模型要映射到的表的名稱。
實際上,預設情況下,Django 假設表的名稱由模型類的名稱和應用程式名稱組成(通過底線 (_) 符號分隔)。
因此,在此樣本中,Django 將尋找名為 myapp_student的表。當然,db_table 並不是您可用於模型內部類 Meta 的唯一選項。
您可以在 Django 文檔的 Model Meta 選項頁面上查看可用的 Meta 選項列表。
vi myapp/views.py
添加
from myapp.models import student
def latest_article(request):
article_list = student.objects.order_by(‘id‘)
return render(request, ‘index.html‘, {‘article_list‘:article_list})
mkdir templates
vi index.html
{% for article in article_list %}
Author:{{ article.author }}
Title:{{ article.title }}
Content:{{ article.title }}
</br>
{% endfor %}
配置完成開啟
http://127.0.0.1:8000/articles
Django1目錄結構
.
└── myproj
├── index.html
├── manage.py
├── myapp
│ ├── admin.py
│ ├── __init__.py
│ ├── __init__.pyc
│ ├── migrations
│ │ └── __init__.py
│ ├── models.py
│ ├── models.pyc
│ ├── tests.py
│ ├── views.py
│ └── views.pyc
├── myproj
│ ├── __init__.py
│ ├── __init__.pyc
│ ├── settings.py
│ ├── settings.pyc
│ ├── urls.py
│ ├── urls.pyc
│ ├── wsgi.py
│ └── wsgi.pyc
└── templates
└── index.html
個人總結:當我們開啟http://127.0.0.1:8000/articles時應用會先通過進入urls.py遍曆找到相對應的視圖中的方法,在視圖方法中在通過models獲得資料並傳到對應的網頁上!
在 Django 中構建 mysql 資料庫支援的 Web 應用程式(linux )