python3安装mysql连接_Windows下Django(Python3)使用Mysqlclient配置并连接Mysql

版本说明

之前一直都是用的内置的djangodb,数据保存在本地的一个slite文件里,但是项目开发要使用mysql这样的大型数据库了。查了一下网上的教程,大多直接import Mysqldb,但是我用的是python3(django2.0以上版本已经不支持py2了),找了一下还是有解决办法的。

版本: python 3.6.1, django 2.0.7

下载MysqlClient扩展包

可以访问LFD的开源网站,很多windows下的python扩展包都可以找到,建议mark一下。找到mysqlclient‑1.3.13‑cp36‑cp36m‑win_amd64.whl,点击下载。

执行cmd命令:

pip install mysqlclient‑1.3.13‑cp36‑cp36m‑win_amd64.whl

即安装好了Mysqlclient。

创建一个django项目

django的环境搭建这里就不多说了,python下执行以下命令创建一个django项目:

django-admin.py startproject mysqlTest

创建django应用:

django-admin.py startapp blog

并将该应用配置到项目中,修改settings.py:

# Application definition

INSTALLED_APPS = [

'django.contrib.admin',

'django.contrib.auth',

'django.contrib.contenttypes',

'django.contrib.sessions',

'django.contrib.messages',

'django.contrib.staticfiles',

'blog',

]

修改原有数据库连接设置以连接到目标数据库:

# Database

# https://docs.djangoproject.com/en/2.0/ref/settings/#databases

DATABASES = {

'default': {

# 'ENGINE': 'django.db.backends.sqlite3',

# 'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),

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

'NAME': 'schooldb',

'USER':'root',

'PASSWORD':'123456',

'HOST':'',

'PORT':'',

}

}

这里的schooldb是我在MySQL本地的一个数据库,HOST和PORT不填的话默认是localhost和3306。

创建数据模型

这里就举个简单的例子,在models.py中:

from django.db import models

# Create your models here.

class User(models.Model):

UserName=models.CharField(max_length=200)

Address=models.CharField(max_length=200)

生成迁移文件,执行迁移

执行以下命令以同步数据库更改:

python manage.py makemigrations

python manage.py migrate

Mysql查看数据表

这时SHOW TABLES; 后可以看到一个blog_user的表,

DESC blog_user;

表结构:

+----------+--------------+------+-----+---------+----------------+

| Field | Type | Null | Key | Default | Extra |

+----------+--------------+------+-----+---------+----------------+

| id | int(11) | NO | PRI | NULL | auto_increment |

| UserName | varchar(200) | NO | | NULL | |

| Address | varchar(200) | NO | | NULL | |

+----------+--------------+------+-----+---------+----------------+

这里我没指定PK,也自动生成了一个自增长的id。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,以下是一个基于Python+Django+MySQL实现的Web数据库系统的示例代码: 1. 首先,需要安装DjangoMySQL依赖库。可以通过以下命令进行安装: ``` pip install Django pip install mysqlclient ``` 2. 创建Django项目和应用,可以通过以下命令进行创建: ``` django-admin startproject myproject cd myproject python manage.py startapp myapp ``` 3. 在Django项目的settings.py中,配置MySQL数据库连接信息: ``` DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', 'NAME': 'mydatabase', 'USER': 'mydatabaseuser', 'PASSWORD': 'mypassword', 'HOST': 'localhost', 'PORT': '3306', } } ``` 4. 在Django应用的models.py中,定义数据库模型: ``` from django.db import models class User(models.Model): name = models.CharField(max_length=50) email = models.EmailField() age = models.IntegerField() def __str__(self): return self.name ``` 5. 进行数据库迁移,创建User表: ``` python manage.py makemigrations python manage.py migrate ``` 6. 在Django应用的views.py中,编写增删改查的视图函数: ``` from django.shortcuts import render, get_object_or_404, redirect from .models import User from .forms import UserForm def user_list(request): users = User.objects.all() return render(request, 'user_list.html', {'users': users}) def user_detail(request, pk): user = get_object_or_404(User, pk=pk) return render(request, 'user_detail.html', {'user': user}) def user_new(request): if request.method == "POST": form = UserForm(request.POST) if form.is_valid(): user = form.save(commit=False) user.save() return redirect('user_detail', pk=user.pk) else: form = UserForm() return render(request, 'user_edit.html', {'form': form}) def user_edit(request, pk): user = get_object_or_404(User, pk=pk) if request.method == "POST": form = UserForm(request.POST, instance=user) if form.is_valid(): user = form.save(commit=False) user.save() return redirect('user_detail', pk=user.pk) else: form = UserForm(instance=user) return render(request, 'user_edit.html', {'form': form}) def user_delete(request, pk): user = get_object_or_404(User, pk=pk) user.delete() return redirect('user_list') ``` 7. 在Django应用的urls.py中,配置URL路由: ``` from django.urls import path from . import views urlpatterns = [ path('', views.user_list, name='user_list'), path('user/<int:pk>/', views.user_detail, name='user_detail'), path('user/new/', views.user_new, name='user_new'), path('user/<int:pk>/edit/', views.user_edit, name='user_edit'), path('user/<int:pk>/delete/', views.user_delete, name='user_delete'), ] ``` 8. 在Django应用的templates目录下,编写HTML模板文件: user_list.html: ``` {% extends "base.html" %} {% block content %} <h1>Users</h1> <table> <tr> <th>Name</th> <th>Email</th> <th>Age</th> <th>Actions</th> </tr> {% for user in users %} <tr> <td>{{ user.name }}</td> <td>{{ user.email }}</td> <td>{{ user.age }}</td> <td> <a href="{% url 'user_detail' pk=user.pk %}">View</a> <a href="{% url 'user_edit' pk=user.pk %}">Edit</a> <a href="{% url 'user_delete' pk=user.pk %}">Delete</a> </td> </tr> {% endfor %} </table> <a href="{% url 'user_new' %}">Add User</a> {% endblock %} ``` user_detail.html: ``` {% extends "base.html" %} {% block content %} <h1>{{ user.name }}</h1> <p>Email: {{ user.email }}</p> <p>Age: {{ user.age }}</p> <a href="{% url 'user_edit' pk=user.pk %}">Edit</a> <a href="{% url 'user_delete' pk=user.pk %}">Delete</a> {% endblock %} ``` user_edit.html: ``` {% extends "base.html" %} {% block content %} <h1>{{ title }}</h1> <form method="post"> {% csrf_token %} {{ form.as_p }} <button type="submit">Save</button> </form> {% endblock %} ``` base.html: ``` <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>{% block title %}{% endblock %}</title> </head> <body> <div> <h1><a href="{% url 'user_list' %}">My Project</a></h1> </div> <div> {% block content %}{% endblock %} </div> </body> </html> ``` 9. 在Django应用的forms.py中,定义表单类: ``` from django import forms from .models import User class UserForm(forms.ModelForm): class Meta: model = User fields = ('name', 'email', 'age',) ``` 10. 运行Django开发服务器,查看效果: ``` python manage.py runserver ``` 以上就是一个基于Python+Django+MySQL实现的Web数据库系统的示例代码。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值