Anaconda + Djongo + spyder 网站开发 (三)

  • 上一章节实现了主页面的链接,这一章节主要是实现数据库的搭建和链接
  • 第一步要搭建Djongo 和Mysql的链接
    • 首先根据上一章的内容安装好mysql然后打开自己的本地数据库根据自己的项目需要构建一个数据库并把对应的表单建立好
    • 这里列一下我要用的数据和对应设计的数据表单,最简单的数据库,只有一个表
    •  

       

    • 打开mysql的界面,输入密码后执行下面代码建立数据库
    •  1 create database schccdb default charset=utf8;
       2 CREATE TABLE IF NOT EXISTS `sc_sample`(
       3    `sample_id` INT UNSIGNED AUTO_INCREMENT,
       4    `scCancer_result` VARCHAR(100),
       5    `expr_matrix` VARCHAR(100) NOT NULL,
       6    `sample_sex` DATE,
       7    `sample_age` DATE,
       8    `sample_case` TEXT,
       9    `other_result` VARCHAR(100),
      10    `Download_path` VARCHAR(100),
      11    `literature` TEXT,
      12    PRIMARY KEY ( `sample_id` )
      13 )ENGINE=InnoDB DEFAULT CHARSET=utf8;

       

    • 在Djongo 中链接mysql的数据库,在settings.py中修改原本DATABASES的部分
    •  
       1 DATABASES = {
       2     'default':
       3     {
       4         'ENGINE': 'django.db.backends.mysql',    # 数据库引擎
       5         'NAME': '你自己数据库的名称', # 数据库名称
       6         'HOST': '127.0.0.1', # 数据库地址,本机 ip 地址 127.0.0.1
       7         'PORT': 3306, # 端口
       8         'USER': 'root',  # 数据库用户名
       9         'PASSWORD': '你自己的数据库密码', # 数据库密码
      10     }
      11 }

       

    •  

      接下来,告诉 Django 使用 pymysql 模块连接 mysql 数据库: 在与 settings.py 同级目录下的 __init__.py 中引入模块和进行配置
    • 1 import pymysql
      2 pymysql.install_as_MySQLdb()

      到此,数据库就链接成功了

  • 接下来要想好一个网站要实现的功能模块有哪些,Djongo通过对不同的功能模块建立对应的app来实现
  • 建立第一个app
    • 根据我们的页面需求比如建立scCancer结果展示页面
    • 首先用命令建立scCancer对应的app
    • 1 python .\manage.py startapp scCancer

      就会生成一个文件夹,在里面增加urls.py文件夹

    • 并且再settings.py中增加刚刚新键的app的名字
    • 为了链接我们建立好的数据库
    • 我们修改scCancer下面的models文件,(models 文件的作用就是用来操控数据库,根据控制器给出的指令对数据库进行操作,最后再把拿到的数据传给前端页面)
    • 类里面的字段代表数据表中的字段(name),数据类型则由CharField(相当于varchar)、DateField(相当于datetime), max_length 参数限定长度。
    • 总结来说就是修改scCancer下面的models文件为下面:和你自己的数据表单格式一样就可以了
    •  1 from django.db import models
       2 
       3 class sc_sample(models.Model):
       4     sample_id = models.AutoField(primary_key=True)
       5     scCancer_result = models.CharField(max_length=100)
       6     expr_matrix = models.CharField(max_length=100)
       7     sample_sex = models.IntegerField()
       8     sample_age = models.IntegerField()
       9     sample_case = models.TextField()
      10     other_result = models.CharField(max_length=100)
      11     Download_path = models.CharField(max_length=100)
      12     literature = models.TextField()

       

    • 都建立完后就要然Djongo 知道你对数据库的修改,在命令行中运行:
    • 1 python manage.py migrate   # 创建表结构
      2 
      3 python manage.py makemigrations scCancer  # 让 Django 知道我们在我们的模型有一些变更
      4 python manage.py migrate scCancer   # 创建表结构

       

    • 为了测试数据库确实被链接好了,我们来测试一下,在scHCCDB文件夹下面建立testdb.py用来测试数据库
    • 同样,先给出当前的目录树
    •  

       testdb内容为

    •  1 # -*- coding: utf-8 -*-
       2 
       3 from django.http import HttpResponse
       4 
       5 from scCancer.models import sc_sample
       6 
       7 
       8 # 数据库操作
       9 def testdb(request):
      10     test1 = sc_sample(sample_id=1,scCancer_result="ceshi",expr_matrix="zheshiyigejiadedizhi",
      11                       sample_sex=0,sample_age=1,sample_case="haha")
      12     test1.save()
      13     return HttpResponse("<p>数据添加成功!</p>")

      /scHCCDB/urls.py为

    • 1 from django.urls import path
      2 
      3 from . import views,testdb
      4 
      5 urlpatterns = [
      6     path('', views.index),
      7     path('index/', views.index),
      8     path('testdb/', testdb.testdb),
      9 ]

      然后运行页面出现

    •  

       说明数据库成功链接

    • 下一章将介绍如何将一些数据加入数据库后进行不同功能页面app的构建和跳转

posted on 2020-08-25 22:26  若流芳千古  阅读(619)  评论(1编辑  收藏  举报

导航