Django如何配置mysql数据库

发布时间:2019-06-08  栏目:计算机教程  评论:0 Comments

from __future__ import unicode_literals
from django.db import models


class Article(models.Model):
  title = models.CharField(max_length=32, default='Title')
  content = models.TextField(null=True)

安装Django

本次参考:http://www.jb51.net/article/42870.htm
http://blog.csdn.net/styyzxjq2009/article/details/39585323
http://www.runoob.com/django/django-model.html
pip 版本:9.0.1
django版本:1.11.2
本次采用pip安装

pip install django

要连接mysql需要mysqp-python包,

mysql-python安装:http://www.jianshu.com/p/9ecf885013d6

django的文档中有说明,想使用mysql的话需要安装Python的db API DRIVER
即数据库接口驱动,常用的数据库驱动接口有三种,mysqldb、pymysql、mysqlclient
。但是但是MYSQLdb不支持python3
,官方推荐使用mysqlclient。因此本文也是采用mysqlclient。好了废号不多说,开始今天的Django配置mysql之旅。

设置连接mysql

修改settings.py

vim HelloWorld/settings.py
DATABASES = {  
    'default': {  
#        'ENGINE': 'django.db.backends.sqlite3',  
#        'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),  
        'ENGINE': 'django.db.backends.mysql',  
        'NAME': 'django',#数据库名称  
        'USER': 'root',  
        'PASSWORD': '123456',   
    }  
}  

下面解释一下,里面参数的意思:
ENGINE :
指定数据库驱动,不同的数据库这个字段不同,下面是常见的集中数据库的ENGINE的写法:

django.db.backends.postgresql # PostgreSQL
django.db.backends.mysql # mysql
django.db.backends.sqlite3 # sqlite
django.db.backends.oracle # oracle

NAME: 指定的数据库名,如果是sqlite的话,就需要填数据库文件的绝对位置
USER: 数据库登录的用户名,mysql一般都是root
PASSWORD:登录数据库的密码,必须是USER用户所对应的密码
HOST:
由于一般的数据库都是C/S结构的,所以得指定数据库服务器的位置,我们一般数据库服务器和客户端都是在一台主机上面,所以一般默认都填127.0.0.1
PORT:数据库服务器端口,mysql默认为3306
HOST和PORT都可以不填,使用默认的配置,但是如果你有更改默认配置的话,就需要填入更改后的
配置完这,只是最简单的一步,下面就需要装python连接mysql数据库的驱动程序,首先,需要安装mysql的开发包,在shell,里面运行:

具体django中数据库的操作可以参考下一篇博文。

创建第一个django项目

django-admin.py startproject HelloWorld

创建完成后我们可以查看下项目的目录结构:

$ cd HelloWorld/
$ tree
.
|-- HelloWorld
|   |-- __init__.py
|   |-- settings.py
|   |-- urls.py
|   `-- wsgi.py
`-- manage.py

目录说明:
HelloWorld: 项目的容器。
manage.py: 一个实用的命令行工具,可让你以各种方式与该 Django
项目进行交互。
HelloWorld/init.py: 一个空文件,告诉 Python 该目录是一个 Python
包。
HelloWorld/settings.py: 该 Django 项目的设置/配置。
HelloWorld/urls.py: 该 Django 项目的 URL 声明; 一份由 Django
驱动的网站”目录”。
HelloWorld/wsgi.py: 一个 WSGI 兼容的 Web
服务器的入口,以便运行你的项目。

查看sql语句

创建Django app 相当于项目的名称,后面在models.py中定义的class(表名)数据库中会以app名称命名开始

一个项目中包含一个或多个这样的app。app可以理解为一块功能集合。比如产品管理模块就包含增删该查等功能,可以把产品管理叫做一个app。每个Django
app都有独立的models,views等,易移植和被复用。
DOS进入项目目录 执行

cd HelloWorld
python manage.py startapp products
products/
    __init__.py
    models.py
    tests.py
    views.py

第三步:在settings.py中配置mysql连接参数,如下:

创建django-admin管理员账号

你可以通过命令 python manage.py createsuperuser
来创建超级用户,如下所示:

#cd HelloWord
# python manage.py createsuperuserUsername
 (leave blank to use 'root'): admin
Email address: admin@runoob.com
Password:
Password (again):
Superuser created successfully.
[root@solar HelloWorld]#

之后输入用户名密码登录,界面如下:

图片 1

Paste_Image.png

第一步:下载mysqlclient

环境介绍

很久之前有个java项目,后来由于调整将这个项目的前端给调没了,就剩下数据库,所以之后添加账号都是用mysql客户端去连接数据库去改表。
所以现在的环境是:mysql 数据库 password 是md5 加密

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

Django 提供了基于 web 的管理工具。

Django 自动管理工具是 django.contrib 的一部分。你可以在项目的
settings.py 中的 INSTALLED_APPS 看到它:
/HelloWorld/HelloWorld/settings.py 文件代码:

INSTALLED_APPS = (
 'django.contrib.admin',
 'django.contrib.auth',
 'django.contrib.contenttypes',
 'django.contrib.sessions', 
 'django.contrib.messages',
 'django.contrib.staticfiles',)

django.contrib是一套庞大的功能集,它是Django基本代码的组成部分。
激活管理工具
通常我们在生成项目时会在 urls.py 中自动设置好,我们只需去掉注释即可。
配置项如下所示:
/HelloWorld/HelloWorld/urls.py 文件代码:

# urls.pyfrom django.conf.urls import urlfrom django.contrib import admin 
urlpatterns = [ url(r'^admin/', admin.site.urls),]

当这一切都配置好后,Django 管理工具就可以运行了。
使用管理工具
启动开发服务器,然后在浏览器中访问
http://127.0.0.1:8000/admin/,得到如下界面:

图片 2

第四步:在你创建的应用中models.py创建model类。

启动项目

接下来我们进入 HelloWorld 目录输入以下命令,启动服务器:
python manage.py runserver 0.0.0.0:8000

报错:启动django后,不能访问,报400错误。
原因:没有开启允许访问
处理:编辑HelloWorld目录下setting.py ,把其中的
ALLOWED_HOSTS=[]改成ALLOWED_HOSTS=[‘‘] ##
表示任意地址。页面400

比如我在我的blog应用下的,models.py中创建一个类,代码如下:

修改 products/models.py

from django.db import models  
from django.contrib.auth.hashers import make_password, check_password
import hashlib

# Create your models here.  
class Publisher(models.Model):#该类与数据库同步的时候会创建该表,如果使用之前的库和表,class 后就写数据库中你想要用的表
    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() 
     password = models.CharField(max_length=50)

    def __unicode__(self):
        return self.name
    def save(self,*args,**kwargs): #设置password md5加密
        self.password = hashlib.md5(self.password).hexdigest()
        super(Publisher(你的类名),self).save(*args,**kwargs)

class Author(models.Model):  
    first_name = models.CharField(max_length=30)  
    last_name = models.CharField(max_length=40)  
    email = models.EmailField()  

class Book(models.Model):  
    title = models.CharField(max_length=100)  
    authors = models.ManyToManyField(Author)  
    publisher = models.ForeignKey(Publisher)  
    publication_date = models.DateField()  
  • USER: 数据库登录的用户名,mysql一般都是root
  • PASSWORD:登录数据库的密码,必须是USER用户所对应的密码
  • HOST:
    由于一般的数据库都是C/S结构的,所以得指定数据库服务器的位置,我们一般数据库服务器和客户端都是在一台主机上面,所以一般默认都填127.0.0.1
  • PORT:数据库服务器端口,mysql默认为3306
  • HOST和PORT都可以不填,使用默认的配置,但是如果你有更改默认配置的话,就需要填入更改后的

再次编辑settings.py,

# Application definition

INSTALLED_APPS = (
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'products',
)

在命令行中运行:

$ python manage.py migrate # 创建表结构

$ python manage.py makemigrations products# 让 Django
知道我们在我们的模型有一些变更
$ python manage.py migrate products # 创建表结构
看到几行 “Creating table…” 的字样,你的数据表就创建好了。
Creating tables …
……
Creating table products_Author #我们自定义的表
……
表名组成结构为:应用名_类名(如:products_Author)。
注意:尽管我们没有在models给表设置主键,但是Django会自动添加一个id作为主键。

这时进入mysql,可以查看这些表已经创建

最后 将你的Models加入到Admin管理中(是在页面上显示)
admin.py

from django.contrib import admin  

# Register your models here.  
from books.models import Publisher, Author, Book  

class AuthorAdmin(admin.ModelAdmin):  
    list_display=('first_name','last_name','email')  
    search_fields=('first_name','last_name')  

admin.site.register(Publisher)  
admin.site.register(Author)  
admin.site.register(Book)  

当这一切都配置好后,现在你将发现Django管理工具可以运行了。
启动开发服务器(如前:python manage.py runserver
),然后在浏览器中访问:http://127.0.0.1:8000/admin/
就是简单的用户登录,然后就可以看到数据库的表,可以可视化的操作这些表了~

CREATE DATABASE blog(database_name) CHARACTER SET UTF8; 
   #指定数据库的编码utf8
pip install mysqlclient

其实这样基本上完成了,为了更好地说明,举个实例进行演示一下数据的操作。

ENGINE:用于特定的数据库引擎的配置,不同的数据库字段不同,常见的有:

留下评论

网站地图xml地图