数据库准备

创建Django项目

django-admin startproject HelloWorld #HelloWorld是项目名

创建APP

cd HelloWorld #进入Django项目

django-admin startapp Hello_app #Hello_app是APP的名字

  • 项目目录

  • settings.py中注册App,打开与项目名称相同的目录,找到其中的settings.py文件,双击编辑,找到App配置区域,如下所示。
  INSTALLED_APPS = [
      'django.contrib.admin',
      'django.contrib.auth',
      'django.contrib.contenttypes',
      'django.contrib.sessions',
      'django.contrib.messages',
      'django.contrib.staticfiles',
  ]
  • 我们需要将刚刚创建的App加入到配置文件中,其他配置保持默认即可,如下所示。
  INSTALLED_APPS = [
      'django.contrib.admin',
      'django.contrib.auth',
      'django.contrib.contenttypes',
      'django.contrib.sessions',
      'django.contrib.messages',
      'django.contrib.staticfiles',
      'Hello_app',  #添加的APP
  ]

连接数据库

  • 利用pip命令安装mysqlclient

pip install mysqlclient

  • 找到刚才的stting.py文件修改数据库配置
    DATABASES = {
      'default': {
          'ENGINE': 'django.db.backends.mysql', #mysql驱动
          'NAME': 'bigdata',    #数据库名称
          'USER': 'root',   #登陆账号
          'PASSWORD': '123456', #登陆密码
          'HOST': 'localhost',  #主机地址
          'PORT': '3306',   #端口
      }
    }
    

反向生成Model

  • 在pycharm的terminal命令行窗口中输入

python manage.py inspectdb

  • python manage.py inspectdb命令行执行的功能是把数据库中所有的表反向生成实体类,一张表对应一个实体类,你只需要将生成的实体类信息粘贴到对应的APP目录下的models.py即可

从数据库获取数据

  • 在Hello_app下新建一个文件夹,名称叫做templates,不能为其他名字,不然会报错,该文件夹用来存放模板文件(.html文件)。

  • templates文件夹下新建一个index.html的网页

  • 进入Hello_app目录下的views.py文件

  • views.py中定义一个函数

    from django.shortcuts import render
    from Hello_app.models import Bigdatas
    
    def get_list(request):
      big_data = Bigdatas.objects.all()
      return render(request,'index.html',{'Bigdata':big_data})
    
  • big_data = Bigdatas.objects.all()表示从数据库bigdata表中获取所有数据并赋值给big_data这个变量

  • rander的三个参数:(前两个参数必须给出,第三个可以省略)

    1. 请求request
    2. 需要渲染的模板文件(跳转到哪一个.html文件)
    3. 字典对象(用来存放渲染模板的数据)
  • 进入HelloWorld文件夹下的url.py,在url.py中注册函数和请求路径
    from django.contrib import admin
    from django.urls import path
    from Hello_app import views
    
    urlpatterns = [
      path('admin/', admin.site.urls),
      path('',views.get_list)   #添加路径对应函数,''表示运行首页访问路径
    ]
    
  • path()函数有两个参数:
    1. 请求路径,指定为空字符串表示项目首页对应的内容
    2. 表示调用函数
  • path('',views.get_list)表示当浏览器请求首页,调用view.pyget_list函数,执行get_list函数中的动作。添加到path中函数名不需要有括号,不然会报错。

在网页中显示

  • 编辑Hello_apptemplates目录下的indext.html文件

    <!DOCTYPE html>
    <html lang="en">
    <head>
      <meta charset="UTF-8">
      <title>Title</title>
    </head>
    <body>
      {% for Bigdatum in Bigdata %}
          <h1>{{ Bigdatum.name }}</h1>
      {% endfor %}
    
    </body>
    </html>
    

{% for Bigdatum in Bigdata %} {% endfor %}表示循环作用域,遍历Bigdata列表Biddatum表示每次循环的变量,{{ Bigdatum.name }}表示每次获取Bigdatum对象中的name

  • 在pycharm中的Terminal输入

python manage.py runserver

  • 在浏览器输入127.0.0.1:8000


一只小菜鸡