1. 程式人生 > >Django與mysql數據庫的連接

Django與mysql數據庫的連接

rfi 訪問路徑 emp ges 一個 clas images 路徑 try

環境:win7+py3.4+mysql+pymysql

(以下默認工程和應用已經創建)

1.-->工程/settings.py (數據庫配置)

DATABASES = {
    default: {
        ENGINE: django.db.backends.mysql,
        HOST:127.0.0.1,
        PORT:3306,
        NAME: bole,
        USER:root,
        PASSWORD:root,
    }
}

2.-->應用/models.py  (數據庫字段設置)

from django.db import models

class python(models.Model):
    title = models.CharField(max_length=20)
    intro = models.CharField(max_length=100)
    def __str__(self):
        return self.title

3.-->遷移數據庫python manage.py makemigrations + python manage.py migrate

在Mysql數據庫中顯示

技術分享

插入測試數據 : python manage.py shell ------->>>from 應用.models import python >>>c = python(title=‘test‘,intro=‘這是個測試‘) >>>c.save() .......

4.-->應用/views.py (編寫視圖函數顯示數據)

from django.shortcuts import render
from .models import python
def index(request):
    context = python.objects.all()
    return render(request,index.html,context={context:context})

5.-->應用、工程/urls.py (設置訪問路徑與視圖函數的映射)

應用/urls.py

from django.conf.urls import
url from . import views urlpatterns = [ url(r^index/$,views.index,name = index), ]

project/urls.py

from django.conf.urls import url,include
from django.contrib import admin

urlpatterns = [
    url(r‘‘,include(DB.urls)),
    url(r^admin/, admin.site.urls),
]

6.-->index.html (編寫前端顯示模板)

settings.py 中修改

DIRS: [os.path.join(BASE_DIR,templates)],

在根目錄(manage.py所在目錄)新建templates文件夾,在其中新建index.html

<ul>
    {% for article in context %}
    <li>
        標題:{{article.title}}
        內容:{{article.intro}}
    </li>
    {% endfor %}
</ul>

至此涉及到的M(models)V(views)T(templates)都已完成,python manage.py runserver 在本機運行 http://127.0.0.1:8000/index/

技術分享

運行另外的py程序修改該數據庫內容,刷新後可更新內容

import pymysql
try:
    con = pymysql.connect(host = 127.0.0.1,user = root,passwd=root,charset=utf8)
    con.query(create database bole)
    con = pymysql.connect(host = 127.0.0.1,user = root,passwd=root,db = bole,charset=utf8)
except:
    con = pymysql.connect(host = 127.0.0.1,user = root,passwd=root,db = bole,charset=utf8)
try:
    pass
except:
    print(Table existed)
print(Finished)
sql = "insert INTO db_python(title,intro) VALUES (‘test4‘,‘這還是一個實時測試‘)"
con.query(sql)

-------------------By:羽凡 At:2017-10-6-23:55------------------

Django與mysql數據庫的連接