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一整个函数执行完整

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

 

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

原因:未探索

解决办法:import MySQLdb


一、Django是什么?

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

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

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

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


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

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

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

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

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


三、使用步骤

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

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

        1.1 终端方式

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

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

  •         

         1.3 两种方法对比

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

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

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

                 

                 

 2.文件介绍

        

 3.APP

创建app代码

python manage.py startapp app01

 


四、快速上手

1.实现一些功能

        1.1 注册app

    

         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模块
  • 添加对应关系
  • 编写视图函数 

1.3 启动Django项目

        1.3.1 命令行启动 

python manage.py runserver

        1.3.2 pycharm启动 

2 templates模板

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

 

3.静态文件

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

 

五、模板语法

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

对于元组的循环

{% for item in n2 %}
    <span>{{ item }}</span>
{% endfor %}

对于字典的循环

{% for k,v in n3.items %}
    <div>{{ k }} {{ v }}</div>
{% endfor %}

分支

{% if n1 == "韩超" %}
    <h1>是韩超</h1>
{% elif n1 == "黄蓉" %}
    <h1>不是韩超,是黄蓉</h1>
{% else %}
    <h1>不是韩超,也不是黄蓉,是其他人</h1>
{% endif %}

六、数据库

1.ORM

ORM可以做

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

2.orm创建数据库

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

3.orm连接数据库

4.orm创建修改表结构

类创建表

修改表结构 

5.orm增删改查

 url.py中指定

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

 

 

 七、用户管理案例

url定向

view.py中定义函数

 前端界面

<body>
    <h1>info列表</h1>
    <table border="1">
        <thead>
            <tr>
            <th>ID</th>
            <th>姓名</th>
            <th>密码</th>
            <th>年龄</th>
        </tr>
        </thead>
        <tbody>
            <tr>
                <td>1</td>
                <td>小黑</td>
                <td>123456</td>
                <td>19</td>
            </tr>
        </tbody>
    </table>
</body>

 

搜索手机号

查询匹配方式:

    # 典型查询方式
    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提供了大量能使我们快速便捷地处理数据的函数和方法。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
学习Django时,使用PyCharm作为开发工具可以提高效率。PyCharm是一款功能强大的Python集成开发环境,它提供了丰富的功能和工具,可以帮助开发者更好地编写和调试Django应用程序。 在学习Django的过程中,可以使用PyCharm创建Django项目,并使用其内置的Django支持功能来简化开发过程。PyCharm可以自动识别Django项目的结构,并提供代码补全、语法检查、调试等功能,帮助开发者更快地编写和调试代码。 此外,PyCharm还提供了集成的版本控制系统,如Git,可以方便地管理和追踪代码的变化。它还支持自动化测试和部署,可以帮助开发者更好地进行项目管理和发布。 总之,使用PyCharm作为开发工具可以提高Django学习的效率和便利性。它的强大功能和友好的用户界面使得开发者可以更专注于代码的编写和项目的开发。\[1\] \[2\] \[3\] #### 引用[.reference_title] - *1* *3* [PyCharm平台下初学Django框架](https://blog.csdn.net/howard2005/article/details/93491364)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^koosearch_v1,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [pycharm平台下的Django教程](https://blog.csdn.net/Sunshine_ZCC/article/details/73918408)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^koosearch_v1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值