目录
错误合集
一、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
提取码:3m0kMySQL5.7打包
链接:https://pan.baidu.com/s/1IEtaZN8JFcVlqOunx1E6Bw
提取码:23b5
错误:执行
UsersInfo.objects.filter(name="膳魔师").delete()
时未成功删除
原因:未把orm一整个函数执行完整
解决办法:访问网页完成整个函数的访问
错误:安装完mysqlclient库后import mysqlclient成功但是运行时报错缺少mysqlclient模块
原因:未探索
解决办法:import MySQLdb
Django是一个开放源代码的Web应用框架,由Python写成。采用了MTV的框架模式,即模型M,视图V和模版T。
模型(model):是数据处理层,主要处理与数据相关的所有事务,例如数据的存取、验证和数据之间的关系。
模板(tempates):表现层,处理与表现相关的决定,例如文档和页面的显示。
视图(View):业务逻辑层,存取模型以及调取合适模板的相关逻辑,是模型和模板之间的桥梁。
1.客户端发来的HTTP请求被视为Django的请求对象。
2.URL分配器负责搜索并调用被请求的URL所对应的视图
3.被调用的视图根据情况使用模型或模板生成相应的对象
4.相应对象作为HTTP形影发回给用户
Django中项目会有一些默认的文件和默认的文件夹
1.1 终端方式
Python安装目录\django-admin startproject 项目名称
1.2 Pycharm方式(需要专业版,社区版没有这个功能)
1.3 两种方法对比
最标准的是使用命令行创建方式,pycharm方式在标准基础上加上了
[1]templates目录(可以删除掉)
[2]在setting.py中的TEMPLATES中给DIRS加上了内容,而标准版没有加(可以删除)
创建app代码
python manage.py startapp app01
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:设置模板引擎,用于解析模板文件,生成网页内容
1.3 启动Django项目
1.3.1 命令行启动
python manage.py runserver
1.3.2 pycharm启动
优先去项目根目录的templates中寻找(需要提前配置,不配置无效),然后根据app的注册顺序,在每个app下的templates目录中寻找
在开发过程中一般将图片、css、js都当做静态文件处理
其本质是在HTML中写一些占位符,由数据对这些占位符进行替换和处理
对于元组的循环
{% for item in n2 %}
{{ item }}
{% endfor %}
对于字典的循环
{% for k,v in n3.items %}
{{ k }} {{ v }}
{% endfor %}
分支
{% if n1 == "韩超" %}
是韩超
{% elif n1 == "黄蓉" %}
不是韩超,是黄蓉
{% else %}
不是韩超,也不是黄蓉,是其他人
{% endif %}
ORM可以做
- 创建、修改、删除数据库中的表(无法创建数据库)
- 操作表中的数据
create database 数据库名 DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
类创建表
修改表结构
url.py中指定
在view.py中定义一个orm函数,实现对数据的增删改查
url定向
view.py中定义函数
info列表
ID
姓名
密码
年龄
1
小黑
123456
19
查询匹配方式:
# 典型查询方式
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提供了大量能使我们快速便捷地处理数据的函数和方法。