Django学习笔记

目录

错误合集

一、Django是什么?

二、Django架构处理请求的流程

三、使用步骤

1.创建项目(后面启动时用什么方式创建就用什么方式启动)

 2.文件介绍

 3.APP

四、快速上手

1.实现一些功能

2 templates模板

3.静态文件

五、模板语法

六、数据库

1.ORM

2.orm创建数据库

3.orm连接数据库

4.orm创建修改表结构

5.orm增删改查

 七、用户管理案例

总结



错误合集

 错误:python manage.py makemigrationsc成功后python manage.py migrate报错1193, “Unknown system variable ‘default_storage_engine‘“

原因:当时使用mysql5.0,版本过低与Django不匹配,需换成5.5以上

解决办法:卸载原MySQL5.0,安装5.7,具体步骤参考卸载MySQL_Gabriel_wei的博客-CSDN博客_卸载mysql

参考网上意见选择Navicat Premium 12与MySQL5.7匹配

错误:先打开Navicat后打开注册机导致激活失败

解决办法:卸载Navicat重装,然后先进行激活,具体步骤参考

Navicat Premium最新注册机-Navicat Keygen Patch下载v6.3.1最新版-西西软件下载

Navicat Premium 12安装包和注册机打包下载

链接:https://pan.baidu.com/s/1gg9WZOqZevAk4V5J87FJbg 
提取码:3m0k 

MySQL5.7打包

链接:https://pan.baidu.com/s/1IEtaZN8JFcVlqOunx1E6Bw 
提取码:23b5  

错误:执行

UsersInfo.objects.filter(name="膳魔师").delete()

时未成功删除

原因:未把orm一整个函数执行完整

Django学习笔记_第1张图片

解决办法:访问网页完成整个函数的访问

Django学习笔记_第2张图片 Django学习笔记_第3张图片

错误:安装完mysqlclient库后import mysqlclient成功但是运行时报错缺少mysqlclient模块

原因:未探索

解决办法:import MySQLdb


一、Django是什么?

Django是一个开放源代码的Web应用框架,由Python写成。采用了MTV的框架模式,即模型M,视图V和模版T。

模型(model):是数据处理层,主要处理与数据相关的所有事务,例如数据的存取、验证和数据之间的关系。

模板(tempates):表现层,处理与表现相关的决定,例如文档和页面的显示。

视图(View):业务逻辑层,存取模型以及调取合适模板的相关逻辑,是模型和模板之间的桥梁。


二、Django架构处理请求的流程

Django学习笔记_第4张图片

1.客户端发来的HTTP请求被视为Django的请求对象。

2.URL分配器负责搜索并调用被请求的URL所对应的视图

3.被调用的视图根据情况使用模型或模板生成相应的对象

4.相应对象作为HTTP形影发回给用户


三、使用步骤

1.创建项目(后面启动时用什么方式创建就用什么方式启动)

Django中项目会有一些默认的文件和默认的文件夹

        1.1 终端方式

  • 打开终端(win+R)
  • 进入项目目录
  • 执行命令创建项目(未实验过,可能存在问题)
    • Python安装目录\django-admin startproject 项目名称

        1.2 Pycharm方式(需要专业版,社区版没有这个功能) 

  •         Django学习笔记_第5张图片
  • Django学习笔记_第6张图片

         1.3 两种方法对比

                 最标准的是使用命令行创建方式,pycharm方式在标准基础上加上了

                [1]templates目录(可以删除掉)

                [2]在setting.py中的TEMPLATES中给DIRS加上了内容,而标准版没有加(可以删除)

                 Django学习笔记_第7张图片

                 Django学习笔记_第8张图片

 2.文件介绍

        Django学习笔记_第9张图片

 3.APP

创建app代码

python manage.py startapp app01

 Django学习笔记_第10张图片


四、快速上手

1.实现一些功能

        1.1 注册app

    Django学习笔记_第11张图片

         1.2 编写URL和视图函数对应关系

render方法的作用——结合一个给定的模板和一个给定的上下文字典,并返回一个渲染后的 HttpResponse 对象。通俗的讲就是把context的内容, 加载进templates中定义的文件, 并通过浏览器渲染呈现

render(request, template_name, context, content_type, status, using)
  • request:浏览器向服务器发送的请求对象,包含用户信息、请求内容和请求方式等。
  • template_name:设重模板文件名,用于生成网页内容。
  • context:对模板上下文(模板变量)赋值,以字典格式表示,默认情况下是一个空字典。
  • content_type:响应内容的数据格式,一般情况下使用默认值即可。
  • status:HTTP状态码,默认为200。
  • using:设置模板引擎,用于解析模板文件,生成网页内容

  • 导入views模块
  • 添加对应关系Django学习笔记_第12张图片
  • 编写视图函数 Django学习笔记_第13张图片

1.3 启动Django项目

        1.3.1 命令行启动 

python manage.py runserver

        1.3.2 pycharm启动 

Django学习笔记_第14张图片

2 templates模板

 优先去项目根目录的templates中寻找(需要提前配置,不配置无效),然后根据app的注册顺序,在每个app下的templates目录中寻找

Django学习笔记_第15张图片

 Django学习笔记_第16张图片

3.静态文件

在开发过程中一般将图片、css、js都当做静态文件处理

Django学习笔记_第17张图片

 Django学习笔记_第18张图片

五、模板语法

其本质是在HTML中写一些占位符,由数据对这些占位符进行替换和处理

对于元组的循环

{% for item in n2 %}
    {{ item }}
{% endfor %}

对于字典的循环

{% for k,v in n3.items %}
    
{{ k }} {{ v }}
{% endfor %}

分支

{% if n1 == "韩超" %}
    

是韩超

{% elif n1 == "黄蓉" %}

不是韩超,是黄蓉

{% else %}

不是韩超,也不是黄蓉,是其他人

{% endif %}

六、数据库

1.ORM

ORM可以做

  • 创建、修改、删除数据库中的表(无法创建数据库)
  • 操作表中的数据

2.orm创建数据库

  1. 启动MySql服务
  2. 创建数据库
create database 数据库名 DEFAULT CHARSET utf8 COLLATE utf8_general_ci;

3.orm连接数据库

Django学习笔记_第19张图片

4.orm创建修改表结构

类创建表

Django学习笔记_第20张图片

修改表结构 

Django学习笔记_第21张图片

5.orm增删改查

 url.py中指定

 在view.py中定义一个orm函数,实现对数据的增删改查

Django学习笔记_第22张图片

Django学习笔记_第23张图片 Django学习笔记_第24张图片

 Django学习笔记_第25张图片

 七、用户管理案例

url定向

Django学习笔记_第26张图片

view.py中定义函数

Django学习笔记_第27张图片 前端界面


    

info列表

ID 姓名 密码 年龄
1 小黑 123456 19

 Django学习笔记_第28张图片

搜索手机号

查询匹配方式:

    # 典型查询方式
    PrettyNumber.objects.filter(Number="xxxxx",id=123)
    # 字典方式查询
    dict={"Number":"xxxxx","id":123}
    PrettyNumber.objects.filter(**dict)

数字:

    PrettyNumber.objects.filter(id=123) #id等于123
    PrettyNumber.objects.filter(id__gt=123) #id大于123
    PrettyNumber.objects.filter(id__gte=123)  # id大于等于123
    PrettyNumber.objects.filter(id__lt=123)  # id小于123
    PrettyNumber.objects.filter(id__lte=123)  # id小于等于123
    dict={"id__lte":123}
    PrettyNumber.objects.filter(**dict)  #使用字典方式必须加**

字符:

    PrettyNumber.objects.filter(Number="xxxxx")  #筛选出等于xxxxx
    PrettyNumber.objects.filter(Number__startswith="xxxxx")  #筛选出以xxxxx开头
    PrettyNumber.objects.filter(Number__endswith="xxxxx")  # 筛选出以xxxxx结尾
    PrettyNumber.objects.filter(Number__contains="xxxxx")  # 筛选出包含xxxxx
    dict={"Number__contains":"xxxxx"}
    PrettyNumber.objects.filter(**dict)#使用字典方式必须加**

分页

PrettyNumber.objects.filter(id=x)[0:10] #筛选出id等于x数据的前十条
PrettyNumber.objects.all()[0:10]    #筛选出所有数据的前十条

        

                

        


总结

提示:这里对文章进行总结:

例如:以上就是今天要讲的内容,本文仅仅简单介绍了pandas的使用,而pandas提供了大量能使我们快速便捷地处理数据的函数和方法。

你可能感兴趣的:(Django,python,人工智能毕业设计,django,学习,python)