当前位置: 首页 > news >正文

新建Django项目+本地Mysql数据库demo

1、当前路径下指定虚拟环境激活

a123456@zbMacBook-Pro demo % source /Users/a123456/pyenv/django_xb//bin/activate
(django_xb) a123456@zbMacBook-Pro demo % pip list
Package            Version
------------------ ----------
asgiref            3.11.0
certifi            2025.11.12
cffi               2.0.0
charset-normalizer 3.4.4
cryptography       46.0.3
Django             3.2.16
idna               3.11
pip                25.3
pycparser          2.23
PyMySQL            1.0.2
pytz               2025.2
requests           2.32.5
setuptools         65.5.1
sqlparse           0.5.5
urllib3            2.6.2
wheel              0.38.4

2、执行 Django 项目创建命令,<project_name>替换为你的项目名称

django-admin startproject <project_name>
(django_xb) a123456@zbMacBook-Pro demo % django-admin startproject django_xb

3、Django项目下,新建模块

python manage.py startapp tools

3.1 目录结构

tools/
├── __init__.py       # 标识该目录为Python包
├── admin.py          # 配置Django后台管理该app的模型
├── apps.py           # app的核心配置文件(包含app元数据)
├── migrations/       # 存储模型迁移文件(数据库同步相关)
│   └── __init__.py
├── models.py         # 定义app的数据模型(对应数据库表)
├── tests.py          # 编写该app的单元测试用例
└── views.py          # 编写该app的视图逻辑(处理请求、返回响应)

4、注册app+配置数据库链接,找到主项目目录下的setting.py文件

# Application definition
INSTALLED_APPS = ['django.contrib.admin','django.contrib.auth','django.contrib.contenttypes','django.contrib.sessions','django.contrib.messages','django.contrib.staticfiles','tools'
]# Database
DATABASES = {'default': {'ENGINE': 'django.db.backends.mysql','NAME': 'django_demo',"USER": 'root',"PASSWORD": "123456","HOST": 'localhost', "PORT": 3306,"CHARSET": "UTF-8"},
}

注意:这时候启动项目有个坑,启动django项目的时候报错

# python manage.py runserver  0.0.0.0:8080
Connected to pydev debugger (build 231.9011.38) Watching for file changes with StatReloader Traceback (most recent call last):File "/Users/a123456/pyenv/django_xb/lib/python3.11/site-packages/django/db/backends/mysql/base.py", line 15, in <module>import MySQLdb as Database ModuleNotFoundError: No module named 'MySQLdb' The above exception was the direct cause of the following exception:

解决方法:找到主项目下的初始化文件__init__.py

import pymysql
# 让 Django 把 pymysql 当作 MySQLdb 来使用
pymysql.install_as_MySQLdb()

5、新模块定义数据模型 models.py

from django.db import models# Create your models here.   
class Emp(models.Model):id = models.CharField(max_length=50, primary_key=True, verbose_name="主键ID")name = models.CharField(max_length=255, verbose_name="员工名称")age = models.IntegerField(default=0, verbose_name="年龄")class Meta:db_table = 'emp'verbose_name = "员工表"

5.1 生成迁移文件 

# 生成迁移文件
python manage.py makemigrations
# 指定模块生成迁移文件
python manage.py makemigrations tools
# 执行迁移
python manage.py migrate

6、编写视图函数 views.py

from django.http import JsonResponse
from django.views.decorators.csrf import csrf_exempt
from django.views.decorators.http import require_GET
from .models import Emp@csrf_exempt
@require_GET
def emp_list(request):"""获取员工列表"""emps = Emp.objects.all().values()return JsonResponse({'code': 0,'msg': "员工列表",'data': list(emps)})

7、新模块下创建urls.py

from django.urls import path
from .views import emp_list
app_name = 'tools'
urlpatterns = [path('emp/list', emp_list, name="emp_list"),
]

8、将路由配置到主项目下的urls

from django.contrib import admin
from django.urls import path,includeurlpatterns = [path('admin/', admin.site.urls),path('tools/', include('tools.urls')),#新模块路由配置到这里
]

9、启动项目

(django_xb) a123456@zbMacBook-Pro django_zb % python manage.py runserver  0.0.0.0:8080
Watching for file changes with StatReloader
Performing system checks...System check identified no issues (0 silenced).
December 31, 2025 - 06:52:22
Django version 3.2.16, using settings 'django_zb.settings'
Starting development server at http://0.0.0.0:8080/
Quit the server with CONTROL-C.

10、接口访问

image

 11、学习后总结,待补充

  

http://www.jsqmd.com/news/171585/

相关文章:

  • Clang 17如何实现C++26核心特性支持:5个你必须掌握的实战案例
  • 【Clang 17与C++26深度解析】:掌握下一代C++特性实战技巧
  • 2026空气净化器品牌推荐:五大主流品牌技术路线对决 - 品牌企业推荐师(官方)
  • 揭秘cxx-qt底层机制:如何实现C++与Rust无缝通信并提升开发效率
  • PyTorch安装教程GPU与TensorFlow 2.9模型转换可行性
  • 国产vs进口涡街流量计哪家好?一位自动化工程师的厂家使用实录 - 品牌推荐大师1
  • 【C++ AIGC推理性能突破】:揭秘吞吐量提升300%的核心优化技术
  • codeforces 161D:Distance in Tree ← DFS + 树形DP
  • 全球仅少数团队掌握的技术:C++26任务优先级队列内部机制曝光
  • 【C++26并发编程新纪元】:std::future链式组合操作彻底改变异步编程模式
  • 应对安全刚需:深入解读网络安全核心概念与主流建设规范体系
  • 性价比高的修护面霜选购指南:解锁抗敏修护新体验 - 工业品网
  • 【WRF-GHG 细节补充】CO₂、CH₄ 和 CO 通量在 WRF-GHG 中的计算
  • GitHub Actions自动化部署TensorFlow-v2.9模型训练任务
  • 仅限内部分享:Java微服务Serverless部署的7个鲜为人知的最佳实践
  • 用 Python 玩转 GPU 编程:NVIDIA cuTile 让你轻松上手 CUDA Tile!
  • 一文掌握DataFlow!这款超好用的LLM数据处理框架,建议收藏!
  • 性价比高的智能招聘会排名
  • 2025年湖南水域工程服务商口碑排名:湖南安达康体可靠吗? - 工业设备
  • Markdown引用学术论文说明TensorFlow理论基础
  • 渣土车智能管理平台解决方案
  • DiskInfo显示TensorFlow镜像块设备详细信息
  • 2025年国际长途搬家服务推荐:往国外搬家靠谱公司排行榜 - 工业品牌热点
  • 用 Python 轻松剖析 GPU 性能:NVIDIA nsight-python 包来帮忙!
  • 大佬都在看!Meta50亿收购Manus,AI编程新赛道已开启,小白也能降维打击!
  • 技术博客配图技巧:展示TensorFlow运行效果图
  • 收藏!35岁程序员破局指南:从被裁到AI高薪,这篇实操手册帮你踩准风口
  • 震惊!Meta 50亿美金all in AI Agent!大模型已过时?这才是未来!小白程序员速来上车!
  • 2026仿石漆厂家最新推荐:上海岩首何以领跑液态石材新赛道? - 深度智识库
  • 【技术干货】RAG+推理:打造更智能的大语言模型系统(建议收藏学习)