django+mysql+网页实例

django+mysql+网页实例

1.环境和平台
Win 10
PyCharm 2018
Django 3.0.3
mysql 2008 R2
Navicat for MySQL 11.1

2.网页功能及文件树形结构
2.1 功能
在Navicat已创建好的数据库bms2中,通过django工程中的models.py向数据库bms2添加表message,通过网页insert在表内填加人员姓名和电话号码,并在list页面中显示。
表message的结构:
在这里插入图片描述
网站效果:
insert页面
在这里插入图片描述
List页面
在这里插入图片描述
2.2文件树形结构
在这里插入图片描述
3.主要步骤
1)数据库连接及新建数据库
工具:Navicat
2)网页基本目录结构创建
(1)启动PyCharm
(2)新建工程
(3)安装django,pymysql
(4)创建网页工程:django-admin startproject
(5)创建网页应用:django-admin startapp,或py manage.py startapp
3)数据库表结构创建 models.py
4)设置网页显示方式 views.py
5) 创建网页脚本 show.html,insert.html,该两文件保存在新建的templats文件夹下。
6)修改网页工程文件夹下的settings.py文件
7)修改网页工程文件夹下的urls.py文件
8) 数据库的同步和迁移
py manage.py makemigrations
py manage.py migrate
9)启动网站服务器
py manage.py runserver
10)显示网站
点击http://127.0.0.1:8000/进入主页面
以下介绍网站详细创建过程。

4. 数据库连接与创建
4.1 数据库连接
1) 启动 Navicat for MySQL
在这里插入图片描述
2) 新建数据库连接
在这里插入图片描述

3)点击确定,进入Nativat数据库管理界面->右键点击打开链接:
在这里插入图片描述
在这里插入图片描述

4.2 新建数据库:
在这里插入图片描述
在这里插入图片描述

点击确定后进入下面的界面:
在这里插入图片描述

双击新建的数据库,使数据库bms2为活动状态:
在这里插入图片描述
小结:数据库连接名:connec,数据库用户名:root,数据库名:bms2。该数据库目前为活动状态,表为空。保持Navicat在运行状态。

5 建立网站框架
5.1 网页基本目录结构创建
1)启动 PyCharm
2)新建工程文件,采用虚拟环境
3)在terminal命令窗口,输入pip install xxx,或File->settings,安装django, pymysql运用工具包。
4)创建网页工程

django-admin stsrtproject xxx(网页工程名),本例,网页工程名:competorsweb
5)将路径转到manage.py文件所在路径(后续命令操作均在该路径下)
在这里插入图片描述
6)创建网页应用文件包
py manage.py stsrtapp xxx(网页应用文件包名),本例网页应用文件包名:django_web
至此,网页基本结构搭建完毕。

5.2 通过修改models.py文件建立数据库表
在这里插入图片描述
models.py程序:

from future import unicode_literals

from django.db import models

class message(models.Model):
name = models.CharField(max_length=20)
phonenum = models.IntegerField()

5.3 通过修改views.py文件创建网页的显示方法
在这里插入图片描述
views.py程序

#from future import unicode_literals
from django_web import models
from django.shortcuts import render
from django.http import HttpResponse

def hello(request):
return HttpResponse(“hello world”)

def insert(request):
if request.method == “POST”:
name = request.POST.get(“name”, None)
phonenum = request.POST.get(“phonenum”, None)
twz = models.message.objects.create(name=name, phonenum=phonenum)
twz.save()
return render(request,‘insert.html’)

def list(request):
people_list = models.message.objects.all()
return render(request, ‘show.html’, {“people_list”:people_list})

5.4 新建templates文件夹,并在其中创建insert.html和show.html文件
在这里插入图片描述
注意:templates文件夹在网页应用文件包路径下,即 django_web->templates。(下面的两段网页脚本文件因传输解释的原因,去掉了语句前面的尖括号,使用时请自行添加,使尖括号配对

insert.html程序

!DOCTYPE html>
html lang=“en”>
head>
meta charset=“UTF-8”>
title>人员信息
/head>
body>
form action="/insert/" method=“post”> {% csrf_token %}
input type=“text” name=“name”/>
input type=“text” name=“phonenum”/>
input type=“submit” value=“提交”>
/form>
/body>
/html>

show.html程序

html lang=“en”>
head>
meta charset=“UTF-8”>
title>Title
/head>
body>
h1>信息展示
table>
tr>
th>姓名
th>电话号码
/tr>
{% for line in people_list %}
tr>
td>{{line.name}}
td>{{line.phonenum}}
/tr>
{% endfor %}
/table>
/body>
/html>

5.5 修改settings.py文件,该程序中需改动的程序段如下,其他部分保持不变。

1)已安装的应用程序段,INSTALLED_APPS

INSTALLED_APPS = [
‘django.contrib.admin’,
‘django.contrib.auth’,
‘django.contrib.contenttypes’,
‘django.contrib.sessions’,
‘django.contrib.messages’,
‘django.contrib.staticfiles’,
’django_web’,
]

2)MIDDLEWARE 注释过滤了一行

MIDDLEWARE = [
‘django.middleware.security.SecurityMiddleware’,
‘django.contrib.sessions.middleware.SessionMiddleware’,
‘django.middleware.common.CommonMiddleware’,
#‘django.middleware.csrf.CsrfViewMiddleware’,
‘django.contrib.auth.middleware.AuthenticationMiddleware’,
‘django.contrib.messages.middleware.MessageMiddleware’,
‘django.middleware.clickjacking.XFrameOptionsMiddleware’,
]

3)数据库部分 DATABASES,采用MySQL数据库
DATABASES = {
# ‘default’: {
# ‘ENGINE’: ‘django.db.backends.sqlite3’,
# ‘NAME’: os.path.join(BASE_DIR, ‘db.sqlite3’),
# }
‘default’: {
‘ENGINE’: ‘django.db.backends.mysql’, # 数据库引擎mysql
‘NAME’: ‘bms2’, # 你要存储数据的库名,事先要创建
‘USER’: ‘root’, # 数据库用户名
‘PASSWORD’: ‘’, # 密码
‘HOST’: ‘localhost’, # 主机
‘PORT’: ‘3306’, # 数据库使用的端口
}

}

5.6 urls.py文件修改
在这里插入图片描述
urls.py程序
from django.contrib import admin
from django.urls import path
from django.conf.urls import url
from django_web import views

urlpatterns = [
url(r’^$’,views.hello),
path(‘admin/’, admin.site.urls),
path(‘insert/’, views.insert),
path(‘list/’, views.list),

]

至此,网页创建工作基本完成,下一步进行数据库同步和迁移

5.7 数据库同步
py manage.py makemigrations
结果:
Migrations for ‘django_web’:
django_web\migrations\0002_auto_20200227_0152.py
- Create model message
5.8 数据库迁移
py manage.py migrate
结果:
在这里插入图片描述
5.9 在Navicat中查看数据库连接的结果
在这里插入图片描述
6.启动网站
1)执行:py manage.py runserver
Performing system checks…
System check identified no issues (0 silenced).
February 27, 2020 - 03:19:05
Django version 2.0.1, using settings ‘competorsweb.settings’
Starting development server at http://127.0.0.1:8000/
Quit the server with CTRL-BREAK.
2)点击http://127.0.0.1:8000/进入主页面
在这里插入图片描述
转到insert页面
在这里插入图片描述
转到list页面
在这里插入图片描述
7.两点注意事项
1)settings.py文件中修改MIDDLEWARE程序段,注释过滤了一行
MIDDLEWARE = [
‘django.middleware.security.SecurityMiddleware’,
‘django.contrib.sessions.middleware.SessionMiddleware’,
‘django.middleware.common.CommonMiddleware’,
#‘django.middleware.csrf.CsrfViewMiddleware’,
‘django.contrib.auth.middleware.AuthenticationMiddleware’,
‘django.contrib.messages.middleware.MessageMiddleware’,
‘django.middleware.clickjacking.XFrameOptionsMiddleware’,
]
2)将主体项目文件夹设置为源根目录(Source Root)
在这里插入图片描述
(完)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值