在Web开发中,实现基本的增删改查是必备的操作,Python和Django结合可以轻松实现Web版的增删改查。本文将介绍如何使用Python、Django和MySQL实现Web版的增删改查。
一、环境搭建
在开始编写代码之前,我们需要先搭建好环境。首先,我们需要安装Python、Django和MySQL。
1. Python安装
在Python官网(https://www.python.org/downloads/)下载安装包,双击安装包进行安装。安装完成后,打开命令行窗口,输入python,如果能进入Python交互环境,则说明Python已经成功安装。
2. Django安装
使用pip命令安装Django。在命令行窗口中输入以下命令:
pip install django
如果安装失败,可以尝试指定Django的版本号进行安装。例如,安装Django 2.0.1版本,可以使用以下命令:
pip install django==2.0.1
3. MySQL安装
MySQL是一个关系型数据库管理系统,我们可以使用它来存储数据。在MySQL官网(https://www.mysql.com/downloads/)下载安装包,双击安装包进行安装。安装完成后,在命令行窗口中输入以下命令:
mysql -u root -p
输入密码后,即可进入MySQL交互环境。如果出现以下信息,则说明MySQL已经成功安装:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 1
Server version: 5.7.18-log MySQL Community Server (GPL)
二、创建Django项目和应用
在安装好环境后,我们可以开始创建Django项目和应用。
1. 创建Django项目
在命令行窗口中输入以下命令,创建一个名为example的Django项目:
django-admin startproject example
其中,example是项目的名称。
2. 创建Django应用
在命令行窗口中进入example目录,输入以下命令,创建一个名为blog的Django应用:
python manage.py startapp blog
其中,blog是应用的名称。
三、配置MySQL数据库
在使用MySQL存储数据之前,我们需要先配置MySQL数据库。
1. 创建数据库
在MySQL交互环境中输入以下命令,创建一个名为example的数据库:
CREATE DATABASE example CHARACTER SET utf8 COLLATE utf8_general_ci;
2. 配置Django
在Django项目的settings.py文件中,找到DATABASES配置项,将其修改为以下内容:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'example',
'USER': 'root',
'PASSWORD': '123456',
'HOST': 'localhost',
'PORT': '3306',
}
}
其中,NAME为数据库名称,USER为数据库用户名,PASSWORD为数据库密码,HOST为数据库主机地址,PORT为数据库端口号。
四、编写模型和视图
在配置好MySQL数据库后,我们可以开始编写模型和视图。
1. 编写模型
在Django应用的models.py文件中,定义一个名为Article的模型,用于存储文章的标题和内容:
from django.db import models
class Article(models.Model):
title = models.CharField(max_length=50)
content = models.TextField()
def __str__(self):
return self.title
其中,title为CharField类型,最大长度为50,content为TextField类型。
2. 编写视图
在Django应用的views.py文件中,定义一个名为index的视图,用于展示文章列表:
from django.shortcuts import render
from .models import Article
def index(request):
articles = Article.objects.all()
return render(request, 'index.html', {'articles': articles})
其中,index函数获取所有文章对象并传递给模板。
五、编写模板
在Django应用的templates目录中,创建一个名为index.html的模板文件,用于展示文章列表:
{% extends 'base.html' %}
{% block content %}
{% for article in articles %}
{{ article.title }}
{{ article.content }}
{% endfor %}
{% endblock %}
其中,for循环遍历所有文章对象,展示文章标题和内容。
六、运行项目
在完成以上步骤后,我们可以运行Django项目并访问文章列表。
在命令行窗口中进入example目录,输入以下命令:
python manage.py runserver
然后,在浏览器中访问http://127.0.0.1:8000/,即可看到文章列表。
七、实现增删改查功能
在展示文章列表的基础上,我们可以继续实现增删改查功能。具体实现方式如下:
1. 增加文章
在Django应用的views.py文件中,定义一个名为add的视图,用于增加文章:
from django.shortcuts import render, redirect
from .models import Article
from .forms import ArticleForm
def add(request):
if request.method == 'POST':
form = ArticleForm(request.POST)
if form.is_valid():
form.save()
return redirect('index')
else:
form = ArticleForm()
return render(request, 'add.html', {'form': form})
其中,add函数使用ArticleForm表单创建Article对象并保存到数据库。
在Django应用的forms.py文件中,定义一个名为ArticleForm的表单,对文章标题和内容进行输入:
from django import forms
from .models import Article
class ArticleForm(forms.ModelForm):
class Meta:
model = Article
fields = [
'title',
'content',
]
在Django应用的urls.py文件中,定义一个名为add的URL,指向add视图:
from django.urls import path
from . import views
urlpatterns = [
path('', views.index, name='index'),
path('add/', views.add, name='add'),
]
在Django应用的templates目录中,创建一个名为add.html的模板文件,用于添加文章:
{% extends 'base.html' %}
{% block content %}
{% endblock %}
其中,form.as_p用于以标签形式显示表单。
2. 删除文章
在Django应用的views.py文件中,定义一个名为delete的视图,用于删除文章:
from django.shortcuts import render, get_object_or_404, redirect
from .models import Article
def delete(request, pk):
article = get_object_or_404(Article, pk=pk)
article.delete()
return redirect('index')
其中,delete函数使用get_object_or_404函数获取文章对象并删除。
在Django应用的urls.py文件中,定义一个名为delete的URL,指向delete视图:
from django.urls import path
from . import views
urlpatterns = [
path('', views.index, name='index'),
path('add/', views.add, name='add'),
path('delete//', views.delete, name='delete'),
]
在Django应用的templates目录中,在展示文章列表的for循环中添加删除按钮:
{% for article in articles %}
{{ article.title }}
{{ article.content }}
{% endfor %}
其中,action指向delete视图。
3. 修改文章
在Django应用的views.py文件中,定义一个名为edit的视图,用于修改文章:
from django.shortcuts import render, get_object_or_404, redirect
from .models import Article
from .forms import ArticleForm
def edit(request, pk):
article = get_object_or_404(Article, pk=pk)
if request.method == 'POST':
form = ArticleForm(request.POST, instance=article)
if form.is_valid():
form.save()
return redirect('index')
else:
form = ArticleForm(instance=article)
return render(request, 'edit.html', {'form': form})
其中,edit函数使用ArticleForm表单更新Article对象。
在Django应用的urls.py文件中,定义一个名为edit的URL,指向edit视图:
from django.urls import path
from . import views
urlpatterns = [
path('', views.index, name='index'),
path('add/', views.add, name='add'),
path('delete//', views.delete, name='delete'),
path('edit//', views.edit, name='edit'),
]
在Django应用的templates目录中,创建一个名为edit.html的模板文件,用于修改文章:
{% extends 'base.html' %}
{% block content %}
{% endblock %}
其中,form.as_p用于以标签形式显示表单。
在Django应用的templates目录中,在展示文章列表的for循环中添加编辑按钮:
{% for article in articles %}
{{ article.title }}
{{ article.content }}
{% endfor %}
其中,action指向edit视图。
八、小结
本文介绍了如何使用Python、Django和MySQL实现Web版的增删改查。通过简单的模型和视图的编写,结合Django提供的ORM技术和表单技术,我们可以轻松实现基本的增删改查操作。