python3.5+Django2.2+pymysql+mysql

1. 简介

Python是一门高级语言,既可以作为脚本语言,又可以作为面向对象编程语言使用,相对于其他低级语言,Python更加简洁、易读、易写。Django是一个高级的Web框架,它基于Python语言开发,遵循MVC(Model-View-Controller)设计模式,被广泛用于开发高质量的Web应用程序。

而本文将介绍Python 3.5+Django 2.2+pymysql+mysql的搭建过程,其中,pymysql是Python中连接MySQL数据库的一个库,用于执行SQL语句和查询结果的处理。

2. 安装Python和Django

2.1 安装Python

要安装Python,首先需要在官网https://www.python.org/downloads/上下载Python 3.5版本的安装包。

下载完成后,运行安装程序,执行默认选项即可。安装完成后,通过以下命令检查Python版本:

python --version

2.2 安装Django

安装Python后,需要安装Django,通过以下命令安装:

pip install Django==2.2

我们选择Django 2.2版本是为了与Python 3.5兼容,如果您使用的是其他版本的Python,则需要选择与之对应的Django版本。

3. 安装pymysql和mysql

3.1 安装pymysql

要使用pymysql,需要先安装pip,通过以下命令安装:

sudo apt-get install python3-pip

安装pip后,便可以通过以下命令安装pymysql:

pip install pymysql

3.2 安装mysql

我们需要在Ubuntu系统上安装mysql-server和mysql-client,通过以下命令安装:

sudo apt-get install mysql-server mysql-client

安装完成后,需要登录mysql,可以通过以下命令登录:

mysql -u root -p

其中,-u选项指定用户名,-p选项表示需要输入密码登录。

此外,在Ubuntu安装MySQL时,默认会对MySQL进行加固处理,使其只能在本机使用,因此需要执行以下命令打开MySQL服务的远程访问:

sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf

将其中的bind-address一行改为以下内容:

bind-address = 0.0.0.0

修改后,保存退出,执行以下命令重启mysql服务:

sudo service mysql restart

4. Django连接mysql数据库

为了连接数据库,需要在Django项目配置文件中设置DATABASES参数,参数内容如下:

DATABASES = {

'default': {

'ENGINE': 'django.db.backends.mysql',

'NAME': 'DATABASE_NAME', # 数据库名称

'USER': 'DATABASE_USER', # 数据库用户

'PASSWORD': 'DATABASE_PASSWORD', # 数据库密码

'HOST': 'DATABASE_HOST', # 数据库主机地址

'PORT': 'DATABASE_PORT', # 数据库端口

}

}

其中,需要替换以下参数:

DATABASE_NAME:数据库名称。

DATABASE_USER:数据库用户。

DATABASE_PASSWORD:数据库密码。

DATABASE_HOST:数据库主机地址。

DATABASE_PORT:数据库端口。

以上参数都需要根据自己的实际情况进行修改。

5. 示例代码

下面是一个简单的Django程序,实现添加和查询用户的功能。

5.1 创建Django项目和应用

通过以下命令创建Django项目:

django-admin startproject django_mysql

以上命令会在当前路径下创建一个名为django_mysql的Django项目。

然后,进入项目目录,通过以下命令创建应用:

cd django_mysql

python manage.py startapp user

以上命令会在项目目录下创建一个名为user的Django应用程序。

5.2 编写视图函数和HTML模板

在user应用中,创建views.py文件,编写添加用户和查询用户的视图函数:

from django.shortcuts import render

from django.http import HttpResponse

import pymysql

def add_user(request):

# 如果是POST请求,从请求中获取表单数据并插入到数据库中

if request.method == 'POST':

# 获取表单数据

name = request.POST['name']

age = request.POST['age']

gender = request.POST['gender']

# 插入数据库

conn = pymysql.connect(host='localhost', user='root', password='123456', db='test', charset='utf8')

cursor = conn.cursor()

sql = "insert into user(name, age, gender) values('%s', %s, '%s')" % (name, age, gender)

cursor.execute(sql)

conn.commit()

return HttpResponse('添加用户成功')

# 展示添加用户表单

return render(request, 'add_user.html')

def query_user(request):

# 查询所有用户

conn = pymysql.connect(host='localhost', user='root', password='123456', db='test', charset='utf8')

cursor = conn.cursor()

sql = 'select * from user'

cursor.execute(sql)

result = cursor.fetchall()

# 将查询结果传递给HTML模板,展示用户列表

return render(request, 'query_user.html', {'result': result})

在templates目录下,创建add_user.html和query_user.html两个HTML模板。

add_user.html文件内容:

<form method="post" action="">

{% csrf_token %}

姓名: <input type="text" name="name"> <br>

年龄: <input type="text" name="age"> <br>

性别: <input type="text" name="gender"> <br>

<input type="submit" value="提交">

</form>

query_user.html文件内容:

<table>

<tr>

<th>姓名</th>

<th>年龄</th>

<th>性别</th>

</tr>

{% for row in result %}

<tr>

<td>{{ row.1 }}</td>

<td>{{ row.2 }}</td>

<td>{{ row.3 }}</td>

</tr>

{% endfor %}

</table>

5.3 设计URL路由

在user应用目录下,创建urls.py文件,设计URL路由:

from django.urls import path

from . import views

urlpatterns = [

path('add_user/', views.add_user, name='add_user'),

path('query_user/', views.query_user, name='query_user'),

]

在主程序目录下的urls.py文件中,将上述URL路由引入:

from django.contrib import admin

from django.urls import path, include

urlpatterns = [

path('admin/', admin.site.urls),

path('user/', include('user.urls')),

]

5.4 启动Django服务器

通过以下命令启动Django服务器:

python manage.py runserver

然后在浏览器中访问http://127.0.0.1:8000/user/add_user/,即可看到添加用户的表单,填写信息并提交即可。

在浏览器中访问http://127.0.0.1:8000/user/query_user/,即可查看所有用户的信息。

6. 总结

本文介绍了Python 3.5+Django 2.2+pymysql+mysql的搭建过程,其中,pymysql是Python中连接MySQL数据库的一个库,用于执行SQL语句和查询结果的处理。

我们在Django项目中,使用了DATABASES参数来设置数据库连接信息,并编写了一个简单的Django程序,实现了添加和查询用户的功能。

如果您需要使用Django开发Web应用程序,并需要连接MySQL数据库,则可以参考本文的方法进行搭建。

后端开发标签