1. 程式人生 > >mysql 連線 django

mysql 連線 django

版本:

django:1.11.9

python3

mysql 5.7.18

在這裡我們認為你已經安裝好了mysql,python ,django

下面是來自django官方教程的一段話

If you wish to use another database, install the appropriate database bindings 

and change the following keys in theDATABASES 'default' item to match your database connection settings:

first

你需要一個Python的db API DRIVER   即資料庫介面驅動

常見的有mysqldb、pymysql、mysqlclient  

  • MySQLdb is a native driver that has been developed and supported for over a decade by Andy Dustman.
  • mysqlclient is a fork of MySQLdb which notably supports Python 3 and can be used as a drop-in replacement for MySQLdb. At the time of this writing, this is the recommended choice
     for using MySQL with Django.
  • MySQL Connector/Python is a pure Python driver from Oracle that does not require the MySQL client library or any Python modules outside the standard library.

但是MYSQLdb不支援python3  ,

In addition to a DB API driver, Django needs an adapter to access the database drivers from its ORM.

Django provides an adapter for MySQLdb/mysqlclient while MySQL Connector/Python includes its own.

上面的意思是不僅需要介面驅動,還需要介面卡,django已經為MYSQLdb和mysqlclient提供了介面卡,MySQL Connector/Python內建這個介面卡

雖然我有一個pymysql ,但按照官網的推薦我還是下載了一個mysqlclient

>>pip install mysqlclient

建立一個數據庫

開啟mysql,type:

CREATE  DATABASE  database_name CHARACTER SET UTF8;       指定資料庫的編碼utf8

Now ,我們已經有了db API DRIVER 和建立好的資料庫,開始第二步

second

改變配置檔案

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

NAME   是你建立的資料庫名字

HOST  主機

PORT 埠

USER  使用者名稱    這個使用者的許可權應是能建立資料表的或者資料庫,忘了。。

PASSWORD  登入mysql的密碼

還有其他選項

third  

現在我們可以建立一些模型去加到資料庫裡了

例如像下面

from django.db import models

# Create your models here.

class Publisher(models.Model):
    pub_name=models.CharField(max_length=200)
    city=models.CharField(max_length=200)

class Book(models.Model):
    book_name = models.CharField(max_length=200)
    author = models.CharField(max_length=200)
    pub_date = models.DateTimeField('date published')
    publish = models.ForeignKey(Publisher, on_delete=models.CASCADE)
View Code

calss  定義的類名將會是資料庫對應的表名,屬性對應欄位,不過表明有所偏差,假如你的應用名是blog ,class名是Book, 建立的表則是blog_book   資料庫不區分大小寫

note:

在配置檔案settings.py 修改

INSTALLED_APPS = [
    'blog.apps.BlogConfig',
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
]
View Code

將我們寫的應用新增進去,

'blog.apps.BlogConfig', 紅色部分是我們應用app.py檔案中的類名。

last

切換到專案的目錄下

like

執行以下幾條命令

python manage.py makemigrations

以上是提示錯誤,表示在Publisher 這個類的屬性不能是book,所以起名字要注意

改完欄位之後

OK

你可以使用

Python manage.py sqlmigrate 應用名 0001

去檢視下,這條命令不會做任何操作,只是檢視

python manage.py migrate

建立完成,再開啟mysql,切到資料庫你會看到

總結:

django   為我們內建的資料庫是sqlite ,但是真正生產時是需要mysql, 等大型資料庫的,

好像使用MYSQL,只需要兩步

  • 安裝databases bindings
  • 更改配置檔案

相關推薦

mysql 連線 django

版本: django:1.11.9 python3 mysql 5.7.18 在這裡我們認為你已經安裝好了mysql,python ,django 下面是來自django官方教程的一段話 If you wish to use another database, install the appropriate 

django mysql連線

django配置mysql資料庫手動建立  # 'ENGINE': 'django.db.backends.sqlite3',        'ENGINE': 'django.db.backends.mysql', #改成my

django mysql 連線查詢join

假設有AppInfo 模型: class AppInfo(models.Model): platform = models.CharField("平臺",max_length=20,choices=APP_PLATFORMS); category = mod

Linux下安裝Python3的django並配置mysql作為django默認數據庫(轉載)

make lba del log pri ica www src rim 我的操作系統為centos6.5 1 首先選擇django要使用什麽數據庫。django1.10默認數據庫為sqlite3,本人想使用mysql數據庫,但為了測試方便順便要安裝一下sqlite開發

連線mysql資料庫連線報錯,是pom檔案配置mysql連線驅動版本號問題

前一段時間安裝了最新的mysql 8.0.11,然後啟動一個專案的時候報錯資訊如下: [ERROR] 2018-08-14 17:28:21,246 method:com.alibaba.druid.pool.DruidDataSource.init(DruidDataSource.java:6

MAC 安裝mysql 連線驅動ODBC

step 1: 安裝odbc manager, 不裝第二步會報錯 下載地址: http://www.odbcmanager.net/   step 2: 安裝mysql odbc connector 用dpkg格式的吧, 原始碼沒有.configure檔案不知道咋編譯 下載地址: 

apache guacamole 使用mysql 連線

1.建立一個臨時資料夾,用來存放mysql-java聯結器 mkdir tempauth 2.下載相關檔案 cd tempauth wget https://jaist.dl.sourceforge.net/project/guacamole/current/extensio

Golang, MySQL連線不設定時區的問題

package main import ("fmt""github.com/go-xorm/xorm"_ "github.com/jinzhu/gorm/dialects/mysql""time") func main(){engine, err := xorm.NewEngine("mysql", "r

JDBC : java和MySQL連線

前言 JDBC(Java Data Base Connectivity, java資料庫連線)是一種用於執行SQL語句的Java API,由一組用Java語言編寫的類和介面組成, 可以為多種關係資料庫提供統一訪問. SUN公司榮譽出品. —話不多說,直接搞起— – (

mysql連線url中useUnicode=true&characterEncoding=UTF-8的作用

我們在連線mysql資料庫的時候一般都會在url後面新增useUnicode=true&characterEncoding=UTF-8 ,但是問什麼要新增呢? 新增的作用是:指定字元的編碼、解碼格式。 例如:mysql資料庫用的是gbk編碼,而專案資料庫用的是utf-8編碼。

MySQL 連線程式碼筆記

MySQL inner join  mysql> select * from testA; +-------+--------+ | class | action | +-------+--------+ | 1 | 並 | | 2 | 交 | |

MySQL連線、登入、密碼等

官方教程:https://dev.mysql.com/doc/refman/8.0/en/ 連結資料庫,通過指定 -h 引數可以連線網路上的資料庫 mysql -u 使用者名稱 -h 伺服器IP -P 埠 -p 密碼 mysql -u leon -h 192.168.100.123 -P 3306

將web應用和mysql都部署到linux下,web應用通過jdbc就無法獲取到mysql連線

org.springframework.web.util.NestedServletException: Request processing failed; nested exception is org.mybatis.spring.MyBatisSystemException: nested

解決mysql連線10038和ftp出現timeout

 首先,各位,一定要清楚的知道自己有沒有在雲伺服器上開放這個埠,一定要測試!一定要測試!一定要測試!!!  DOS命令一下 :telnet  IPaddress  port  連線不上?非常好,證明沒開放這個埠,這個時候問下給你這個伺服器的運維或

RHEL\CentOS 7 下 MySQL 連線數被限制

問題 專案中,由於連線數過多,提示“Too many connections”,需要增加連線數。我在 /etc/my.cnf中修改了 max_connections = 2000 但是, 實際連線數一直被限制在 214 mysql> 

mysql連線超時wait_timeout設定

通過下面命令可以檢視mysql的超時時間 show global variables like 'wait_timeout'; 其預設值為8小時,超過這個時間,mysql會自動斷開該連線。 有兩種方法可以修改該值 1、命令修改 set global wait_timeout=2880

Mysql-連線

#pragma once #include <deque> #include <mutex> #include <boost/thread/thread.hpp> #include <boost/thread/tss.hpp> #include &l

mysql連線異常-CommunicationException

今天遇到上圖的異常。 原因:mysql連線在超過空閒連線超時時間後被斷開,此時程式不知道該連線已經斷開,繼續使用就會報上圖的錯。 解決辦法:一般情況下很少出現這種錯誤。解決方法有多種,可以從資料庫層面解決:將過期時間設定成很大,不讓連線超時;也可以從程式層面解決,在使用連線前校驗有效性。

close掉一個失效的MySQL連線導致的程式崩潰

這在沒有連結池控制的應用中十分常見,而我正好在做和MySQL相關的開發工作,在一般的工具類應用中,並沒有使用連結池進行連線的管理,而是直接使用MySQL提供的C API進行操作。而這給我的程式帶來過很多麻煩 比如程式碼如下 int main() { MYSQL *conn

關於Navicat fro Mysql 連線虛擬機器(Ubuntu)中的mysql問題記錄

在Mysql安裝中,預設的有root使用者,但是root使用者的預設連線Host也是localhost或者127.0.0.1,也就是限制了root使用者作為本地連線使用;我個人來說,建立新賬戶也是安全性和更加方便。 檢視資料庫    show database