django串連mysql資料庫,架構映射資料庫模型,省掉sql語句哦

來源:互聯網
上載者:User

標籤:

建立一個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語句哦

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.