当前位置:   article > 正文

django框架学习

django框架学习
  • 1.创建项目
    打开某个目录,进入。
    “C:\Users\梁瑾怡\PycharmProjects\pythonProject\venv\Scripts django-admin.exe” + startproject 项目名称
    如果在环境变量里面的话
    django-admin startproject +项目名 :比较标准

    也可以如下这样创建项目
    会加点东西:
    多了一个template目录,直接删除掉
    setting文件,多加了一组数据
    57行【os.path.join[BASE_DIR,‘template’]】删除掉

在这里插入图片描述

  • 2

在这里插入图片描述

manage.py 【项目管理,启动项目,创建app,数据库的管理,常常用
asgi.py 【接受网络请求,不要动】
wsigi.py 【接受网络请求,不要动】
urls.py 【全部的路径,和函数的对应关系,常常操作的文件
settings.py 【项目配置,常常操作的文件


- 3.APP
项目
app 用户管理 【表结构,html,css】
app 订单管理
app 后台管理
app 网站
创建一个app
.\manage.py startapp app01

D:.
│  manage.py
│
├─app01
│  │  admin.py【django提供admin后台管理,不用动】
│  │  apps.py  [固定不用动]
│  │  models.py【**重要**】对数据库操作
│  │  tests.py 【单元测试不用动】
│  │  views.py 【**重要**】一调用url中,就会触发这个py.属于视图函数。
│  │  __init__.py
│  │
│  └─migrations  【数据库变更记录不用动】
│          __init__.py
│
└─mysite
    │  asgi.py
    │  settings.py
    │  urls.py
    │  wsgi.py
    │  __init__.py
    │
    └─__pycache__
            settings.cpython-38.pyc
            __init__.cpython-38.pyc


  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26

4.快速上手

  1. 确保app已注册
    settings
    加入这句话在这里插入图片描述
    编写URL和视图函数的对应关系【urls.py】
    有一个bug,必须这样写,哪怕有红线呢,其实这样运行结果没问题的。在这里插入图片描述在这里插入图片描述
    编写视图【view.py】
    在这里插入图片描述

启动项目
python manage.py runserver 8000
点击这个网页,就可以查看的。http://127.0.0.1:8000/index/

4.1页面
url ----view,里面一个网址对应一个函数
4.2 templates

在这里插入图片描述

4.3 静态文件
在开发过程中,一定要新建这几个包。
在这里插入图片描述
4.5
模板语法
在这里插入图片描述
在这里插入图片描述
直接使用{{}}来进行
案例:伪联通消息中心
4.6 请求与响应
在这里插入图片描述
案例:用户登录

出现403报错

403 Forbidden. CSRF token missing or incorrect

在返回页面的views的方法上添加一个

@csrf_exempt 往后看,不一定的
  • 1

并且导入模块

from django.views.decorators.csrf import csrf_exempt
  • 1

然后页面去掉 {% csrf_token %} 就能正常使用

原文链接:https://blog.csdn.net/weixin_41782332/article/details/81140172
表单的代码

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<h1>用户登陆</h1>
<form method="post" action="/login/">
     <input type="text" name="user" placeholder="用户名">
     <input type="password" name="pwd" placeholder="密码">
     <input type="submit" value="提交">
     <span style="color:red;">{{ error_msg }}</span>
</form>
</body>
</html>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16

样子如下
在这里插入图片描述
逻辑代码

@csrf_exempt   必须放到这个函数上,不然没有效果
def login(request):
    if request.method == "GET":
        return render(request, "login.html")
    # return HttpResponse("登陆成功")
    username = request.POST.get("user")
    password = request.POST.get("pwd")
    if username == '123' and password == "123":
        #  return HttpResponse("登陆成功")
        return redirect("https://www.hao123.com")
    # #  return HttpResponse("登陆失败")
    return render(request, 'login.html',{"error_msg":"用户名或密码错误"})

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13

逻辑描述:
1.打开登录界面,输入账号密码
2.如果正确,重定向
3.不正确,在原有的html上传入error_msg,渲染后才显示出来。

  • 7.数据库操作
    django开发操作数据库更简单,内部提供了ORM框架。
    ORM如何对数据库进行增删改查
    7.1 安装第三方模块
    pip install mysqlclient
    7.2 ORM能做的事情
    创建,修改,删除数据库中的表
    操作表中的数据
    7.3 自己创建数据库
    切记 切记 切记 cmd 打开是以管理员身份打开的
    net start mysql80
    mysql -h 127.0.0.1 -uroot -p123456
    7.4 django连接数据库
    在settings.py文件中进行配置和修改。
DATABASES = {
    'default': {
        # 说明你要连的库为mysql
        'ENGINE': 'django.db.backends.mysql',
        # 数据库名称
        'NAME': 'student',
        # IP 本地为127.0.0.1
        'HOST': '127.0.0.1',
        # 端口默认是3306 oracel默认端口1521
        'PORT': '3306',
        'USER': 'root',
        'PASSWORD': '123456'
    }
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
'
运行

7.5 django操作表
在models中来创建表

from django.db import models
class UserInfo(models.Model):
    name = models.CharField(max_length=32)
    password = models.CharField(max_length=64)
    age = models.IntegerField()
  • 1
  • 2
  • 3
  • 4
  • 5

创建表的名字需要注意一下
请添加图片描述
列会自动多了个id,表名:app名字_类名(小写)

执行命令(当前目录必须是根目录,才能找到manage.py)

python manage.py makemigrations
python manage.py migrate
  • 1
  • 2

app一定要提前注册,没有注册,表不会提交到数据库。
mysql的查看

C:\windows\system32>net start mysql
服务名无效。

请键入 NET HELPMSG 2185 以获得更多的帮助。


C:\windows\system32>mysql admin -V
mysql  Ver 8.0.20 for Win64 on x86_64 (MySQL Community Server - GPL)

C:\windows\system32>net start mysql
服务名无效。

请键入 NET HELPMSG 2185 以获得更多的帮助。


C:\windows\system32>services.msc

C:\windows\system32>**net start mysql80**
请求的服务已经启动。

请键入 NET HELPMSG 2182 以获得更多的帮助。


C:\windows\system32>**mysql -h 127.0.0.1 -uroot -p123456**
mysql: [Warning] Using a password on the command line interface can be insecure.
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 14
Server version: 8.0.20 MySQL Community Server - GPL

Copyright (c) 2000, 2020, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37

create database student; 建库
show databases; 查看库
use student; 进入student表
show tables; 显示
desc app01_userinfo; 查看 app01_userinfo表

删除列没差,但是增加列有讲究
删除表,就是注释后在进行提交就删掉了。
删除列,就是注释后,再提交就删掉了。

!!!修改表一定要注意下,增加列的时候,一定要对列里面的内容进行设置。
不然很容易进行报错的。

增加列,会对之前未填补的空白进行处理,两种处理方法

from django.db import models
class UserInfo(models.Model):
    name = models.CharField(max_length=32)
    password = models.CharField(max_length=64)
    # 表建好后,再加如列,新增列需要对应的数据。
    data = models.IntegerField(null=True,black=True) # 一种是默认为空
    age = models.IntegerField(default=2)  # 一种是默认为2

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

7.6 django操作表中的数据
案例:用户管理
展示用户列表
在这里插入图片描述

在这里插入图片描述
记得引入

from app01.models import UserInfo
  • 1

添加数据库

遇到问题,先看注释,根据注释来检查代码的问题。
这个错误提示是,没有返回的return。
在这里插入图片描述在这里插入图片描述
在这里插入图片描述
在user/list/上添加一个小按钮
删除用户

http://127.0.0.1:8000/info/delete/?nid=1
http://127.0.0.1:8000/info/delete/?nid=2
http://127.0.0.1:8000/info/delete/?nid=3

def 函数(request):
    nid = request.GET.get("nid")
    UserInfo.object.filter(id=nid).delete()
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

在这里插入图片描述

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/天景科技苑/article/detail/799743
推荐阅读
相关标签
  

闽ICP备14008679号