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


    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 ! ")
    
    • 1
    • 2
    • 3
    • 4

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

    from django.contrib import admin
    from django.urls import path
    from . import views
    
    urlpatterns = [
        #path('admin/', admin.site.urls),
        path('hello/', views.hello),
    ]
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

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

    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的密码
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17

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

    import pymysql
    pymysql.install_as_MySQLdb()
    
    • 1
    • 2

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

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

    4.2.创建项目

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

    python manage.py startapp web
    
    • 1

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

    INSTALLED_APPS = [
        'django.contrib.admin',
        'django.contrib.auth',
        'django.contrib.contenttypes',
        'django.contrib.sessions',
        'django.contrib.messages',
        'django.contrib.staticfiles',
        'web.apps.WebConfig', #添加记录
    ]
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

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

    python manage.py makemigrations
    python manage.py migrate #配置好参数之后执行迁移命令
    
    "F:/Anaconda/envs/DjangoServerTest/python.exe" manage.py makemigrations
    "F:/Anaconda/envs/DjangoServerTest/python.exe" manage.py migrate #配置好参数之后执行迁移命令
    
    • 1
    • 2
    • 3
    • 4
    • 5

    4.3.数据库表转模型

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

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

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

    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;
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23

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

    python manage.py inspectdb > web/models.py   #如果名称不一样, 请用你自己的app名称
    
    #指定python
    "F:/Anaconda/envs/DjangoServerTest/python.exe" manage.py inspectdb > web/models.py
    
    • 1
    • 2
    • 3
    • 4

    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.site.urls),#主页
        path('admin/', admin.site.urls),
        path('student_list', views.student_list),
    ]
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    然后,在视图文件中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})
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

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

    DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Titletitle>
    head>
    <body>
    <table border="1">
        <thead>
        <tr>
            <td>idtd>
            <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>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25

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

    5.总结

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

  • 相关阅读:
    【HDOJ2586】【Tarjan离线求LCA】
    隐私计算 FATE - 多分类神经网络算法测试
    OpenCV-Python学习(10)—— OpenCV 图像二值化处理(cv.threshold)
    开启数字新纪元:全球首款开源AI女友,你的私人数字伴侣
    cuda画线改进版
    Elasticsearch (ES) 学习之路(三) IK 分词器安装与使用自定义词典
    pat_basic_1013 数素数
    51单片机控制电动机正反转,PWM调速,记录转动圈数。
    Webpack 性能优化 二次编译速度提升3倍!
    Cannot resolve symbol ‘TimeUnit‘
  • 原文地址:https://blog.csdn.net/m0_67316550/article/details/127877815