標籤:
建立一個django項目:
如,
添加項目目錄檔案:test_db,(如果檔案不存在,會在該目錄下建立一個檔案夾)
設定app名稱:testdb,在新的視窗開啟項目,
其中,MVC模式中,models.py用於處理M,views.py用於處理V,urls.py用於映射視圖。
1.下載pymysql:pip install pymysql
2.在項目__init__.py裡添加(不是):
import pymysql
pymysql.install_as_MySQLdb()
:
models.py中定義資料庫表的欄位:
from django.db import models
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()
def __unicode__(self):
return self.name
在mysql中事先建立一個資料庫,比如:book,然後修改setting.py中DATABASE如下:
DATABASES = {
‘default‘: {
‘ENGINE‘: ‘django.db.backends.mysql‘,
‘NAME‘:‘book‘,
‘USER‘:‘root‘,
‘PASSWORD‘:‘lyf123‘,
‘HOST‘:‘127.0.0.1‘,
‘POST‘:‘3306‘,
# ‘ENGINE‘: ‘django.db.backends.sqlite3‘,
#‘NAME‘: os.path.join(BASE_DIR, ‘db.sqlite3‘),
}
}
經過以上兩個步驟,然後通過命令查看models.py對應的sql語句,命令如下:python manage.py sqlall testdb(項目名)(如果出現:App ‘testdb‘ has migrations的錯誤,只要將migrations檔案刪除即可),如所示:
然後通過命令python manage.py syncdb同步資料庫,建立表,結果如:
啟動mysql,輸入對應的命令查看是否建立了該表和對應的欄位。
在views.py中添加視圖處理:
from .models import Publisher
from django.shortcuts import render_to_response
def book_list(request):
names = Publisher.objects.all()
return render_to_response(‘book_list.html‘, {‘names‘: names})
在urls.py中添加url映射:
url(r‘^book/‘,views.book_list),
在templates中加入兩個html檔案:
#base.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>
{% block title %}{% endblock %}
</title>
</head>
<body>
<h1>My book Site</h1>
<hr>
{% block content %}{% endblock %}
{% block footer %}
<p>Thanks for visiting my site.</p>
{% endblock %}
</body>
</html>
#book_list.html
{% extends ‘base.html‘ %}
{% block title %}title: book_lib{% endblock %}
{% block content %}
<table>
<tr><th>name</th><th>address</th><th>city</th<th>country</th><th>website</th></tr>
{% for m in names %}
<tr>
<td > {{ m.name }} </td>
<td > {{ m.address }} </td>
<td > {{ m.city }} </td>
<td>{{m.country }}</td>
<td>{{ m.website }}</td>
</tr>
{% endfor %}
</table>
{% endblock %}
運行django server,結果如下:
PS:表中的資料是通過mysql命令視窗自己胡亂寫進去,用於測試的
總結:這個例子是對django架構原理比較直觀,簡單的記錄,還未涉及到對資料庫進行增,刪,改,查的操作
django串連mysql資料庫,架構映射資料庫模型,省掉sql語句哦