django框架学习笔记

django框架学习

一,前提准备:

1,安装好python

2,下载安装好pycharm专业版(安装过程中,使用前将代码:0.0.0.0 account.jetbrains.com
0.0.0.0 www.jetbrains.com 添加到hosts文件中(hosts文件路径 C:\Windows\System32\drivers\etc)阻止联网)

二,利用pycharm创建django工程

1,启动pyharm,创建django工程

点击file->New Project 创建mydjango工程,并且创建myweb项目:
在这里插入图片描述
创建成功后,还有默认文件,如下图所示:
在这里插入图片描述
2,启动mydjango测试
3,启动浏览器,输入:http://localhost:8000/ 看到以下信息,说明django启动成功!!!
在这里插入图片描述
三,django连接mysql数据库

1,链接数据库之前,先准备好mysql数据库。所用到的数据库是本机上创建的mzd-djg数据库(用xampp和navicat)
在这里插入图片描述
2,设置数据库链接,找到工程目录下的settings.py文件,并打开,找到DTABASE,修改代码为:

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',  # 数据库驱动
        'NAME': 'mzd-djg',  # 数据库名
        'USER': 'root',  # 用户名
        'PASSWORD': '',  # 密码
        'HOST': '127.0.0.1',  # 数据库地址
        'PORT': '3306'  # 链接数据端口
    }
}

在这里插入图片描述
3,工程加载数据库,找到工程目录下__init__.py文件,并打开后,添加以下代码:
在这里插入图片描述

import pymysql
pymysql.install_as_MySQLdb()

添加后,显示有错,是因为你的工程没有添加mysql驱动

4,添加mysql驱动
找到 file->settings,找到PyMySql,而不是pymysql。
在这里插入图片描述
安装完成后,看到以下信息,说明安装成功。
在这里插入图片描述
导入成功后,启动工程测试。测试时有两个错误,错误原因一个是因为django工程版本与mysql驱动版本问题,只要将版本提示注释掉即可。点击打开错误提示的base.py文件,并将版本注释。另一个错误要修改operations.py文件内容为query = query.encode(errors=‘replace’)。
在这里插入图片描述
在这里插入图片描述
5,再次启动测试,看到以下界面,说明mysql成功连接。
在这里插入图片描述
四,创建数据库表模型

点击myweb项目下的models.py,点击打开,将以编写第一个用户表的模型myweb_user,对应的是数据库表。

注:django框架数据库表有他自己的命名规则,一般情况下表的名称是:项目名称_表名称。例如myweb_user,myweb是你的项目名称,user对应的是你的类名。
在这里插入图片描述
五,为数据库创建表,并同步数据

1,右键点击mydjango工程,找到打开open in Terminal,
在这里插入图片描述
2,创建同步文件,输入:python manage.py makemigrations
在这里插入图片描述
3,创建表结构并同步到数据库,输入:python manage.py migrate
在这里插入图片描述
4,以上步骤完成后,打开数据库查看,将会多了很多表,其中有一张是刚刚写的user类生成的表(myweb_user),其他表都是框架自己的表。
在这里插入图片描述
六,编写从myweb_user获取数据,并显示到页面上

1、在myweb下的views.py编写业务代码,添加以下代码:

from django.shortcuts import render
from myweb.models import User
# Create your views here.
#页面查询用户信息
def queryUsers(request):
    #到数据库查询用户信息
    us = User.objects.all()
    #将数据发给页面
    context = {"ls": us}
    return render(request, "users.html", context)

在这里插入图片描述
2,编写页面users.html 选择工程项目找到templates,右键新建new-html file
然后编写以下代码:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Users</title>
</head>
<body>
<table border="1">
        <thead>
        <tr>
            <th>ID</th>
            <th>名称</th>
            <th>操作</th>
        </tr>
        </thead>
        <tbody>
        {% for row in ls %}
            <tr>
                <td>{{ row.id }}</td>
                <td>{{ row.username }}</td>
                <td>
                    <a href="#?nid={{ row.id }}">删除</a>
                    |
                    <a href="#?nid={{ row.id }}">编辑</a>
                </td>
            </tr>
        {% endfor %}
        </tbody>
    </table>
 
</body>
</html>

在这里插入图片描述
3、添加访问路径,打开urls.py,编写以下代码:

from django.contrib import admin
from django.urls import path
from myweb import views
 
urlpatterns = [
    path('admin/', admin.site.urls),
    path('users/', views.queryUsers),
]

在这里插入图片描述
4、启动项目,成功后看到如图所示:
在这里插入图片描述
5、测试
打开浏览器输入:http://localhost:8000/users/,将会看到如图页面:
在这里插入图片描述
看到以上页面,说明已经成功!!

表中什么数据都没有,可以手动添加数据到数据库中,这里我添加了小明,小康相关的两条信息到myweb_user表中,之后刷新浏览器页面显示如图所示:
在这里插入图片描述
七,django+mysql实现增删查改功能

1,编写增删查改功能代码

打开项目myweb目录下view.py,并编写以下代码:

from django.shortcuts import render, redirect
from myweb.models import User
# Create your views here.
#页面查询用户信息
def queryUsers(request):
    # 到数据库查询用户信息
    us = User.objects.all()
    # 将数据发给页面
    context = {"ls": us}
    return render(request, "users.html", context)
 
 # 打开添加页面
def openAdd(request):
    return render(request, "userAdd.html")
 
 # 保存数据
def saveUser(request):
    username = request.GET.get('username')
    password = request.GET.get('password')
    User.objects.create(username=username, password=password)
    return redirect("/myweb/queryUsers")
 
    #打开修改页面
def openEdit(request):
    id = request.GET.get('id')
    # 到数据库查询用户信息
    m = User.objects.filter(id=id).first()
    # 将数据发给页面
    context = {"m": m}
    return render(request, "userEdit.html", context)
 
    #更新数据
def updateUser(request):
    id = request.GET.get('id')
    username = request.GET.get('username')
    password = request.GET.get('password')
    User.objects.filter(id=id).update(username=username, password=password)
    return redirect("/myweb/queryUsers")
 
    #删除数据
def deleteUser(request):
    id = request.GET.get('id')
    User.objects.filter(id=id).delete()
    return redirect("/myweb/queryUsers")

在这里插入图片描述
2,编写html页面

在工程目录下的templates新建三张页面:
users.html在原来页面的基础上添加如图相应代码即可:
在这里插入图片描述
userAdd.html代码:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>注册</title>
</head>
<body>
<form action="/myweb/saveUser" method="GET">
    {% csrf_token %}
    账号:<input name="username"><br>
    密码:<input name="password"><br>
    <input type="submit" value="添加">
</form>
 
</body>
</html>

userEdit.html代码:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>注册</title>
</head>
<body>
<form action="/myweb/updateUser" method="GET">
    {% csrf_token %}
    <input type="hidden" name="id" value="{{ m.id }}">
    账号:<input name="username"  value="{{ m.username }}"><br>
    密码:<input name="password"  value="{{ m.password }}"><br>
    <input type="submit" value="提交">
</form>
 
</body>
</html>

3,设置路由。在工程目录下,找到urls.py,修改代码:

from django.contrib import admin
from django.urls import path, include
 
urlpatterns = [
    path('admin/', admin.site.urls),
    path('myweb/', include('myweb.adminurls')),
]

在这里插入图片描述
然后在myweb项目下新建adminurls.py,并编写代码:

from django.urls import path
from myweb import views
 
urlpatterns = [
    path('', views.queryUsers),
    path('queryUsers/', views.queryUsers),
    path('openUserAdd/', views.openAdd),
    path('saveUser/', views.saveUser),
    path('openEdit/', views.openEdit),
    path('updateUser/', views.updateUser),
    path('deleteUser/', views.deleteUser),
]

4,启动工程,测试

启动完成后,打开浏览器输入:http://localhost:8000/myweb/,显示如图:
在这里插入图片描述
点击添加,随便添加几条数据后,数据显示如图:
在这里插入图片描述
在这里插入图片描述
点击删除,删除相应的数据。
点击编辑,跳转到编辑状态,自己可以作编辑提交信息。
在这里插入图片描述

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值