Python-新建-Django项目-调试-显示mysql数据库表内容-HelloWorld

news2025/2/26 22:53:26

文章目录

    • 1.Pycharm-开发编辑器
    • 2.HelloWorld程序范例
    • 3.代码调试
    • 4.连接数据库-mysql
      • 4.1.安装好mysql数据库
      • 4.2.创建项目
      • 4.3.数据库表转模型
      • 4.4.前端展示
    • 5.总结

1.Pycharm-开发编辑器

文件->新建项目->选择Django。接着在控制台输入命令:

python -m django --version #查看版本

控制台界面如下所示:
在这里插入图片描述
在这里插入图片描述
如上图所示,在项目文件夹下找到settings.py文件,然后在settings.py文件头加上:

import os

接着运行迁移命令,如下所示:

python manage.py migrate

然后就可以用右上角的命令进行启动。也可以使用运行命令,如下所示:

python manage.py runserver

在这里插入图片描述

2.HelloWorld程序范例

在主目录下新建views.py文件,然后键入内容:

from django.http import HttpResponse

def hello(request):
    return HttpResponse("Hello world ! ")

接着在urls中,添加路由,如下所示:

from django.contrib import admin
from django.urls import path
from . import views

urlpatterns = [
    #path('admin/', admin.site.urls),
    path('hello/', views.hello),
]

启动项目,然后在浏览器输入:

http://127.0.0.1:8000/hello/

如下图所示:
在这里插入图片描述

3.代码调试

在hello函数上下断点,然后启动以调试模式启动,就可以在调试django,如下图所示:
在这里插入图片描述
其它调试步骤,与python语言调试没有区别。

4.连接数据库-mysql

4.1.安装好mysql数据库

从官网上下载相应的数据库安装文件,然后新建数据库ZhiLiao。
在这里插入图片描述
在setting配置文件中,注释原来的数据库连接,然后新建mysql数据库连接,如下所示:

# DATABASES = {
#     'default': {
#         'ENGINE': 'django.db.backends.sqlite3',
#         'NAME': BASE_DIR / 'db.sqlite3',
#     }
# }

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',  # 默认
        'NAME': 'zhiliao',  # 连接的数据库
        'HOST': '127.0.0.1',  # mysql的ip地址
        'PORT': 3306,  # mysql的端口
        'USER': 'root',  # mysql的用户名
        'PASSWORD': 'root123456'  # mysql的密码
    }
}

修改项目文件夹下的__init__.py文件,添加内容如下:

import pymysql
pymysql.install_as_MySQLdb()

如果没有可以在终端安装一个,命令如下:

pip install pymysql -i https://mirrors.aliyun.com/pypi/simple/

4.2.创建项目

在终端输入如下命令,创建一个web项目:

python manage.py startapp web

添加最后一行,如下所示:

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'web.apps.WebConfig', #添加记录
]

执行迁移命令,如下所示:

python manage.py makemigrations
python manage.py migrate #配置好参数之后执行迁移命令

4.3.数据库表转模型

运行下面代码可以自动生成models模型文件:

django-admin.py startapp app   #如果已经存在app  ,不需要执行这行
python manage.py inspectdb > web/models.py   #如果名称不一样, 请用你自己的app名称

新建数据库表,如下所示:

SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;

-- ----------------------------
-- Table structure for web_student
-- ----------------------------
DROP TABLE IF EXISTS `web_student`;
CREATE TABLE `web_student`  (
  `id` tinyint(4) NOT NULL AUTO_INCREMENT,
  `name` varchar(255) CHARACTER SET utf8 COLLATE utf8_unicode_ci NULL DEFAULT NULL,
  PRIMARY KEY (`id`) USING BTREE
) ENGINE = MyISAM AUTO_INCREMENT = 6 CHARACTER SET = utf8 COLLATE = utf8_unicode_ci ROW_FORMAT = Dynamic;

-- ----------------------------
-- Records of web_student
-- ----------------------------
INSERT INTO `web_student` VALUES (1, 'Ogawa Ryota');
INSERT INTO `web_student` VALUES (2, 'Lin Yuning');
INSERT INTO `web_student` VALUES (3, 'Fujii Ryota');
INSERT INTO `web_student` VALUES (4, 'Nakamura Sakura');
INSERT INTO `web_student` VALUES (5, 'Ng Kwok Kuen');

SET FOREIGN_KEY_CHECKS = 1;

将数据库表转成模型文件。

python manage.py inspectdb > web/models.py   #如果名称不一样, 请用你自己的app名称

4.4.前端展示

步骤:编写url;编写视图(views);编写html(templates);启动web。
首先,在ZhiLiaoAI/urls.py中编写路由路径,如下所示:

from django.contrib import admin
from django.urls import path
from web import views

urlpatterns = [
    path('admin/', admin.site.urls),
    path('student_list', views.student_list),
]

然后,在视图文件中web/views.py中编写视图显示,如下所示:

from django.shortcuts import render
from web import models

# Create your views here.
def student_list(request):
    student_queryset = models.WebStudent.objects.all()
    return render(request,"student.html",{"student_queryset":student_queryset})

其次,新建模板文件templates/student.html,内容如下所示:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<table border="1">
    <thead>
    <tr>
        <td>id</td>
        <td>姓名</td>
    </tr>
    </thead>
    <tbody>
    {% for student in student_queryset %}
        <tr>
            <td>{{ student.id }}</td>
            <td>{{ student.name }}</td>
        </tr>
    {% endfor %}
    </tbody>
</table>
</body>
</html>

最后启动服务器,在浏览器输入网址:http://127.0.0.1:8000/student_list

5.总结

本文介绍了构建Django开发环境的详细步骤,在此基础上构建了一个简单的数据库访问项目,显示数据库内的数据。对于熟悉python语言的读者,想采用这种模式构建一个简单的服务器项目,来进行一些计算,确实是非常方便的。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/9844.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【C语言】分支语句 循环语句 _训练题型加深理解

1.分支语句 自从学习编程以来每天都在写分支语句&#xff0c;那么什么是分支语句呢&#xff1f; 下面举两个生动的例子来更好的理解分支语句&#xff1a; 比如我们买东西&#xff0c;要么支付现金&#xff0c;要么使用微信或者支付宝。在大学如果你好好学习&#xff0c;校招…

SpringBoot简单使用MongoDB

SpringBoot简单使用MongoDB一、配置步骤1、application.yml2、pom3、entity4、mapper二、案例代码使用1、库前期准备上一篇安装MongoDB地址http://t.csdn.cn/G4oYJ 一、配置步骤 进入mongodb中创建数据库和用户 # &#xff08;1&#xff09;授权 # 我的管理员是root&#xf…

umi项目本地开发环境远程打开的问题

qiankun主应用加载子应用时&#xff0c;url指定了localhost const getEntry (base: string, port: number) > {const host: string location.hostnamereturn process.env.NODE_ENV development? http://${host}:${port}${base}: ${base}/index.html }而getEntry是用于q…

Cloud Keys Delphi Edition安全地存储

Cloud Keys Delphi Edition安全地存储 使用流行的基于云的密钥管理服务安全地管理密钥和机密。 云密钥可以轻松地将基于云的密钥和秘密管理与任何支持的平台或开发技术集成。这些易于使用的组件可用于与流行的云密钥管理提供商(如Amazon KMS、Amazon AWS Secrets、Azure key Va…

初识 Node.js 与内置模块:初识 Node.js及Node.js 环境的安装

回顾与思考 1. 已经掌握了哪些技术 2. 浏览器中的 JavaScript 的组成部分 3. 思考&#xff1a;为什么 JavaScript 可以在浏览器中被执行 4. 思考&#xff1a;为什么 JavaScript 可以操作 DOM 和 BOM 每个浏览器都内置了 DOM、BOM 这样的 API 函数&#xff0c;因此&#xff0c;…

【云原生之k8s】k8s资源限制以及探针检查

文章目录一、资源限制1、资源限制的使用2、reuqest资源&#xff08;请求&#xff09;和limit资源&#xff08;约束&#xff09;3、Pod和容器的资源请求和限制4、官方文档示例5、资源限制实操5.1 编写yaml资源配置清单5.2 释放内存&#xff08;node节点&#xff0c;以node01为例…

Moonbeam Illuminate/22线上生态盛会|Derek开场演讲

TL;DR Derek&#xff1a;Moonbeam是我认为最佳的实现Web3梦想的平台。一年中近300个项目已经部署在了Moonbeam生态&#xff0c;发展显著优于行业平均。Moonbeam正在构建被成为“Connected Contracts”的原生跨链方案。Moonbeam基金会新设立Moonbeam加速器&#xff0c;帮助Moon…

时间序列预测之为何舍弃LSTM而选择Informer?(Informer模型解读)

LSTM的劣势 Figure 1: (a) LSTF can cover an extended period than the short sequence predictions, making vital distinction in policy-planning and investment-protecting. (b) The prediction capacity of existing methods limits LSTF’s performance. E.g., startin…

Nginx快速入门及配置文件结构

Nginx快速入门教程Nginx 简介Nginx 特性Nginx 架构Nginx 相比Apache的优点Nginx 的安装启动、停止和重新加载 Nginx 配置Nginx 配置文件结构Nginx 工作流程总结后言Nginx 简介 Nginx是 HTTP 和反向代理服务器&#xff0c;邮件代理服务器&#xff0c;以及 Igor Sysoev 最初编写…

传统防火墙与Web应用程序防火墙(WAF)的区别

前言 由于WEB应用防火墙&#xff08;WAF&#xff09;的名字中有“防火墙”三个字&#xff0c;因此很多人都会将它与传统防火墙混淆。实际上&#xff0c;二者之间的有着很大的差别。传统防火墙专注在网络层面&#xff0c;提供IP、端口防护。而WAF是专门为保护基于Web的应用程序…

学生用白炽灯好还是led灯好?2022最专业学生护眼灯推荐

现阶段的学生视力都普遍出现近视低龄化&#xff0c;所以在护眼方面&#xff0c;家长都非常重视的&#xff0c;有人问&#xff1a;学生用白炽灯好还是led灯好&#xff1f; 我的回答是LED灯更适合现在家庭使用&#xff0c;给大家分析一下。 白炽灯是由灯丝发热产生光亮&#xff…

多层串联拼接网络

🍿*★,*:.☆欢迎您/$:*.★* 🍿 目录 背景 正文 总结 背景描述

Pytorch ——特征图的可视化

文章目录前言一、torchvision.models._utils.IntermediateLayerGetter*注意&#xff1a;torcvision的最新版本0.13&#xff0c;已经取消了pretrainedTrue这个参数&#xff0c;并且打算在0.15版正式移除&#xff0c;如果用pretrained这个参数会出现warring警告。现在加载与训练权…

【项目实战】springboot+vue舞蹈课程在线学习系统-java舞蹈课程学习打卡系统的设计与实现

注意&#xff1a;该项目只展示部分功能&#xff0c;如需了解&#xff0c;评论区咨询即可。 本文目录1.开发环境2 系统设计2.1 背景意义2.2 技术路线2.3 主要研究内容3 系统页面展示3.1 学生3.2 教师页面3.3 管理员页面4 更多推荐5 部分功能代码5.1 查看学生打卡5.2 文件上传下载…

天翼云实时云渲染,助力打造世界VR产业大会云上之城

2022年11月12日&#xff0c;2022世界VR产业大会于江西南昌开幕。11月13日&#xff0c;以“共建元宇宙生态&#xff0c;点亮新数智未来”为主题的中国电信生态论坛召开。由天翼云携手新国脉数字文化股份有限公司&#xff08;简称“国脉文化”&#xff09;打造的元宇宙家园国脉大…

【力扣刷题】只出现一次的数字

&#x1f517; 题目链接 题目描述 给你一个 非空 整数数组 nums &#xff0c;除了某个元素只出现一次以外&#xff0c;其余每个元素均出现两次。找出那个只出现了一次的元素。 你必须设计并实现线性时间复杂度的算法来解决此问题&#xff0c;且该算法只使用常量额外空间。 …

java类的练习 -- 声明一个接口(Calculability),接口中

java类的练习 – 声明一个接口(Calculability)&#xff0c;接口中… 题目 编写一个应用程序&#xff0c;实现以下功能&#xff1a; ①声明一个接口(Calculability)&#xff0c;接口中包含一个方法area()。 ②声明一个三角形类实现该接口&#xff0c;类名为Triangle&#xf…

React源码分析2-深入理解fiber

react16 版本之后引入了 fiber&#xff0c;整个架构层面的 调度、协调、diff 算法以及渲染等都与 fiber 密切相关。所以为了更好地讲解后面的内容&#xff0c;需要对 fiber 有个比较清晰的认知。本章将介绍以下内容&#xff1a; 为什么需要 fiberfiber 节点结构中的属性fiber 树…

AR眼镜新秀雷鸟创新,究竟能飞多远?

时隔近十年之后&#xff0c;消费级AR眼镜又重新高调回归大众视野。 自去年10月开始&#xff0c;以OPPO、小米为代表的国内大厂纷纷推出试验性AR眼镜&#xff0c;谷歌第二代AR眼镜更是作为压轴在I/O大会上重新回归&#xff0c;苹果多年来不断提及但始终“难产”的AR产品&#x…

平衡二叉树(AVL树)

1.简介 1.二叉排序树的问题: 如果原始是数据是排好序的(如1,2,3,4,5,6),那么最终创建的二叉排序树的结构就会变成一条斜线,类似于一条单链表,此时如果需要查找/插入某个元素就要一个一个元素的比较,这样就没有优势了.由于每次都要比较左子树,其查询速度甚至比单链表还慢; 2.对…