Python3环境搭建(uWSGI+Django+Nginx+Python+MySQL)(4)

#修改启动脚本路径
sed -i 's#^basedir=#basedir=/usr/local/mysql#g' /etc/init.d/mysqld
sed -i 's#^datadir=#datadir=/mysql/data#g' /etc/init.d/mysqld
chmod +x /etc/init.d/mysqld
#启动和关闭MySQL
/etc/init.d/mysqld start
/etc/init.d/mysqld stop
#方法2:
/usr/local/mysql/bin/msyql_safe &    #后台启动
mysqladmin shutdown  #优雅关闭MySQL服务
#查看运行状态
#netstat -lntup|grep 3306
tcp        0      0 0.0.0.0:3306            0.0.0.0:*              LISTEN      70099/mysqld       

#添加系统自启动
chkconfig --add mysqld
chkconfig --level 345 mysqld on
#添加环境变量
echo "PATH=/usr/local/mysql/bin:$PATH" >> /etc/profile
source /etc/profile

#修改初始化密码
mysqladmin -uroot password '123456'

#建立一个数据库,后面要用到
MySQL [(none)]> create database django;
Query OK, 1 row affected (0.00 sec)

(1)配置Django链接MySQL:

在setting中,Django默认使用的是sqlite数据库:

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.sqlite3',
        'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
    }
}

修改成MySQL数据库配置:

DATABASES = {
        'default':{
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'django',
        'USER': 'root',
        'PASSWORD': '123.com',
        'HOST': '127.0.0.1',
        'PORT': '3306',
        }
}

ENGINE : 指定数据库驱动,不同的数据库这个字段不同,下面是常见的集中数据库的ENGINE的写法:

django.db.backends.postgresql  # PostgreSQL 
django.db.backends.mysql      # mysql 
django.db.backends.sqlite3    # sqlite 
django.db.backends.Oracle      # oracle

NAME: 指定的数据库名,如果是sqlite的话,就需要填数据库文件的绝对位置

USER: 数据库登录的用户名,mysql一般都是root

PASSWORD:登录数据库的密码,必须是USER用户所对应的密码

HOST: 由于一般的数据库都是C/S结构的,所以得指定数据库服务器的位置,我们一般数据库服务器和客户端都是在一台主机上面,所以一般默认都填127.0.0.1

PORT:数据库服务器端口,mysql默认为3306

HOST和PORT都可以不填,使用默认的配置,但是如果你有更改默认配置的话,就需要填入更改后的

配置完这,下面就需要装python连接mysql数据库的驱动程序,首先,需要安装mysql的开发包

#yum install mysql-devel  #安装MySQL插件
#pip3 install mysqlclient    #安装MySQL驱动

(2)通过template模版与MySQL实现简单表单交互

在app目录下的models文件中创建model类用于生成数据表:

#cat app01/models.py
from django.db import models

# Create your models here.

class userinfo(models.Model):
    name = models.CharField(max_length=32)
    password = models.CharField(max_length=32)
    age = models.IntegerField()
    salary = models.IntegerField()

设置setting.py文件,将app加入到INSTALLED_APPS中:

INSTALLED_APPS = [
        'django.contrib.admin',
        'django.contrib.auth',
        'django.contrib.contenttypes',
        'django.contrib.sessions',
        'django.contrib.messages',
        'django.contrib.staticfiles',
        'app01'
        ]

根据model类创建数据库表:

#cmd进入django项目路径下
#python manage.py migrate #创建表结构,非model类的其他表,django所需要的
#python manage.py makemigrations app名 #做数据迁移的准备
如:python manage.py makemigrations app01 app01是项目中的app名字
#python manage.py migrate # 执行迁移,创建medel表结构

在templages下建立模版文件:

#cat templates/app01/home.html
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>test</title>
    <style>
    body{
        background-image: url('/static/78556.jpg');
    }
    </style>
</head>
<body>
<form action="" method="post">  #提交数据给自身
      <p><input type="text"/></p>
      <p><input type="text"/></p>
      <p><input type="text"/></p>
      <p><input type="text"/></p>
      <p><input type="submit" value="提交"/></p>
</form>
<table>
  <thead>
      <tr>
                <th>用户名</th>
                <th>密码</th>
                <th>年龄</th>
                <th>工资</th>
      </tr>
  </thead>
            <tbody>
                {% for item in data %} #循环获取传入字典数据
                <tr>
                    <td>{{item.name}}</td>
                    <td>{{item.password}}</td>
                    <td>{{item.age}}</td>
                    <td>{{item.salary}}</td>
                </tr>
                {% endfor %}
            </tbody>
        </table>

<h1>this is test file</h1>
<script src="https://www.linuxidc.com/static/jquery-3.3.1.js"></script>
</body>
</html>

在app下新建视图函数,与数据库交互:

#cat app01/views.py

from django.shortcuts import render
from django.http import HttpResponse
from app01 import models  #引入数据类模版
# Create your views here.

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/75f89ffef06c6c8f05a32037df413a36.html