# mysite **Repository Path**: shinstein/mysite ## Basic Information - **Project Name**: mysite - **Description**: python3.9 + Django4.2.7 + mysqlclient - **Primary Language**: Python - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2023-12-01 - **Last Updated**: 2023-12-01 ## Categories & Tags **Categories**: Uncategorized **Tags**: Python, Django, mysqlclient, MySQL ## README # mysite #### 介绍 python3.9 + Django4.2.7 + mysqlclient + mysql 8.2.0 Django: https://docs.djangoproject.com/zh-hans/4.2/intro/ #### 软件架构 python3.9 + Django4.2.7 + mysqlclient + mysql 8.2.0 #### 安装教程 1. 安装依赖 ``` # 安装django pip install django # 安装 mysqlclient pip install mysqlclient ``` 2. 创建项目 ``` # django-admin startproject mysite # 上面的命令会创建下面这些文件 mysite/ manage.py mysite/ __init__.py settings.py urls.py asgi.py wsgi.py # 文件介绍参考:https://docs.djangoproject.com/zh-hans/4.2/intro/tutorial01/ ``` 3. 创建 app ``` # 创建 app01 python .\manage.py startapp app01 ``` 4. 注册app ``` vim mysite/settings.py INSTALLED_APPS = [ 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'app01.apps.App01Config' # app01 这个应用 ] ``` 5. 配置mysql ``` vim mysite/settings.py DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', 'NAME': 'python', # 数据库名 'USER': 'root', 'PASSWORD': 'root', 'HOST': '192.168.62.150', 'PORT': 3306 } } ``` 6. 配置请求 mysite/urls.py ``` from django.urls import path from app01 import views urlpatterns = [ # path('admin/', admin.site.urls), path('hello/', views.hello), path('user/list', views.user_list), path('user/add', views.user_add), path('login', views.login), path('user/crud', views.crud_user) ] ``` app01/models.py ``` from django.db import models class UserInfo(models.Model): user_name = models.CharField(max_length=64) password = models.CharField(max_length=128) age = models.IntegerField() def __str__(self): return f"UserInfo(user_name={self.user_name}, password={self.password}, age={self.age})" class Department(models.Model): name = models.CharField(max_length=64) number = models.IntegerField(default=1) description = models.TextField(default='这是部门描述') ``` app01/views.py ``` from django.shortcuts import render, HttpResponse, redirect from django.http import JsonResponse from django.core.serializers import serialize import secrets import string import random from app01.models import UserInfo, Department # Create your views here. def hello(request): return HttpResponse('欢迎使用python3.9') def user_add(request): print('request -->', request) resp_data = { 'name': '张三', 'age': 20 } return JsonResponse(resp_data) def user_list(request): lists = ['张三', '李四', '王五'] # render 找 templates 目录下的 user_list.html,并返回数据 user_list,返回的数据必须是字典 return render(request, 'user_list.html', {'user_list': lists}) def login(request): if request.method == 'GET': return render(request, 'login.html') # post方法登录 user_name = request.POST.get('user_name') pwd = request.POST.get('pwd') print(user_name, pwd) if user_name == 'root' and pwd == 'root': print('登录成功') return redirect('https://www.baidu.com/') return render(request, 'login.html', {'error_msg': '用户名或密码错误'}) def add_user(request): # 增 user_info = UserInfo(user_name=generate_random_string(), password=generate_random_string(), age=random.randint(1, 80)) user_info.save() user_json = serialize('json', [user_info], fields=('user_name', 'password', 'age')) return JsonResponse(user_json, safe=False) def generate_random_string(length=10): alphabet = string.ascii_letters + string.digits # 可以根据需要调整包含的字符集 return ''.join(secrets.choice(alphabet) for _ in range(length)) def crud_department(request): pass def crud_user(request): # 增 # add_user(request) UserInfo.objects.create(user_name=generate_random_string(), password=generate_random_string(5), age=random.randint(1, 20)) # 查 query_set = UserInfo.objects.all() for u in query_set: print(query_set) users = UserInfo.objects.filter(user_name='张三') for u in users: print(u) # 删 UserInfo.objects.filter(id=3).delete() # 改 UserInfo.objects.filter(id=4).update(user_name='Danny') return HttpResponse("success") ``` 7. 更新数据库表 ``` python .\manage.py makemigration python .\manage.py migrate ``` 8. 启动服务 ``` python .\manage.py runserver 8000 ``` #### 使用说明 1. 访问请求 http://localhost:8000/user/crud 2. `mysql_test.py` 为测试操作 mysql