精炼的知识点
web框架的本质(了解就行)
用户的浏览器(socket客户端) 和 网站的服务器(socket服务端)之间
socket
HTTP协议:
1. 请求(request)
2. 响应(response)
web框架本质
0. socket收发消息
1. 访问不同的URL返回不同的页面
用户访问的具体路径 --> 执行不同的函数 --> 返回不同的结果
2. 不同用户访问相同的URL返回不同的页面内容
字符串的替换
Web框架的本质三大部分:
a. 收发socket消息 web服务器
web应用程序
b. 根据不同的请求执行不同的函数返回不同的内容
c. 字符串替换
Django开发阶段使用 wsgiref 模块来处理socket消息
Django部署到线上使用 uWsgi/gunicorn 模块来处理socket消息
Python中 web服务器程序和Web应用程序之间传递消息:
WSGI协议
Python里面Web框架的分类:
1. 自己实现b和c,使用第三方的a:
Django框架
2. 自己实现b,使用第三方的a和c:
Flask
3. 自己实现a\b\c:
Tornado
用户的浏览器(socket客户端) 和 网站的服务器(socket服务端)之间
socket
HTTP协议:
1. 请求(request)
2. 响应(response)
web框架本质
0. socket收发消息
1. 访问不同的URL返回不同的页面
用户访问的具体路径 --> 执行不同的函数 --> 返回不同的结果
2. 不同用户访问相同的URL返回不同的页面内容
字符串的替换
Web框架的本质三大部分:
a. 收发socket消息 web服务器
web应用程序
b. 根据不同的请求执行不同的函数返回不同的内容
c. 字符串替换
Django开发阶段使用 wsgiref 模块来处理socket消息
Django部署到线上使用 uWsgi/gunicorn 模块来处理socket消息
Python中 web服务器程序和Web应用程序之间传递消息:
WSGI协议
Python里面Web框架的分类:
1. 自己实现b和c,使用第三方的a:
Django框架
2. 自己实现b,使用第三方的a和c:
Flask
3. 自己实现a\b\c:
Tornado
2. django安装和介绍 (自己走一遍就OK)
1. Django介绍
版本:1.8.3 1.11.x 2.x
2. 安装
pip3 install django==1.11.11
pip3 list 查看当前Python解释器安装了哪些第三方包
pip3 install django==1.11 -i https://pypi.tuna.tsinghua.edu.cn/simple
pip3 uninstall django
3. 常用命令
1. 创建Django项目
1. 命令行创建
django-admin startproject s21django
在当前目录下创建一个名为 s21django 的Django项目
2. PyCharm创建
见群内截图
3. 启动Django项目
1. PyCharm里面启动:
点绿色的小三角
2. 命令行启动
1. 切换到项目目录下!
2. python manage.py runserver
python manage.py runserver 127.0.0.1:8090
python manage.py runserver 8091
4. 创建APP
1. 在PyCharm创建
2. 在命令行创建
1. 切换到项目目录下!
2. python manage.py startapp app名字
3. 在settings.py里面注册你新创建的那个app
5. Django项目使用静态文件的配置
1. 在项目目录下新建一个保存静态文件的文件夹
2. 告诉Django你去我上面新建的路径去找静态文件
settings.py中 加上相应的配置项:
# 静态文件存放的路径别名,我在HTML文件中使用的那个名字
STATIC_URL = '/static/'
# 静态文件实际保存的目录是哪一些
STATICFILES_DIRS = [
os.path.join(BASE_DIR, 'static')
]
3. 在HTML页面中使用刚才配置的静态文件
/static/... 来引用
1. Django介绍
版本:1.8.3 1.11.x 2.x
2. 安装
pip3 install django==1.11.11
pip3 list 查看当前Python解释器安装了哪些第三方包
pip3 install django==1.11 -i https://pypi.tuna.tsinghua.edu.cn/simple
pip3 uninstall django
3. 常用命令
1. 创建Django项目
1. 命令行创建
django-admin startproject s21django
在当前目录下创建一个名为 s21django 的Django项目
2. PyCharm创建
见群内截图
3. 启动Django项目
1. PyCharm里面启动:
点绿色的小三角
2. 命令行启动
1. 切换到项目目录下!
2. python manage.py runserver
python manage.py runserver 127.0.0.1:8090
python manage.py runserver 8091
4. 创建APP
1. 在PyCharm创建
2. 在命令行创建
1. 切换到项目目录下!
2. python manage.py startapp app名字
3. 在settings.py里面注册你新创建的那个app
5. Django项目使用静态文件的配置
1. 在项目目录下新建一个保存静态文件的文件夹
2. 告诉Django你去我上面新建的路径去找静态文件
settings.py中 加上相应的配置项:
# 静态文件存放的路径别名,我在HTML文件中使用的那个名字
STATIC_URL = '/static/'
# 静态文件实际保存的目录是哪一些
STATICFILES_DIRS = [
os.path.join(BASE_DIR, 'static')
]
3. 在HTML页面中使用刚才配置的静态文件
/static/... 来引用
3. MVC和MTV (了解即可)
1. MVC --> Model View Control
2. MTV --> Model Template views
1. MVC --> Model View Control
2. MTV --> Model Template views
4. 基本路由系统 (urls.py)
1. 路由是一个有顺序的列表,从上到下去匹配
2. 路由的路径是根据正则表达式来匹配的
1. 路由是一个有顺序的列表,从上到下去匹配
2. 路由的路径是根据正则表达式来匹配的
5. 基本视图函数(views.py)
1. 基础必会三件套
from django.shortcuts import HttpResponse, render
1. HttpResponse('字符串')
2. render(request, 'xx.html')
3. redirect
1. 基础必会三件套
from django.shortcuts import HttpResponse, render
1. HttpResponse('字符串')
2. render(request, 'xx.html')
3. redirect
--- ↑ Django基础部分 -----
6. 基本模板引擎(templates/xx.html)
1. render(request, 'xx.html', {"k": "v"})
2. 常用语法:
1. {{ 变量名 }}
2. {{ 变量名.key }}
3. for循环
{% for x in xx %}
{{x}}
{% endfor %}
4. if判断
{% if 条件 %}
...
{% else %}
...
{% endif %}
1. render(request, 'xx.html', {"k": "v"})
2. 常用语法:
1. {{ 变量名 }}
2. {{ 变量名.key }}
3. for循环
{% for x in xx %}
{{x}}
{% endfor %}
4. if判断
{% if 条件 %}
...
{% else %}
...
{% endif %}
7. ORM(单表)
1. 用pymysql连接MySQL数据库查询数据
1. import pymysql
2. 建立连接
3. 获取光标
4. 执行SQL语句
5. 获取数据
6. 关闭光标
7. 关闭连接
2. 使用pymysql连接数据库缺点:
1. 麻烦
2. 自己写SQL语句!!!
3. 使用ORM工具连接数据库
- 优点:
1. 不用自己写SQL语句!!!
- 缺点:
1. 执行效率不高
4. ORM是个啥?
1. 对象关系映射
类 数据表
属性 字段
对象 数据行
2. Django中如何使用ORM
1. 告诉Django连接哪个MySQL数据库(settings.py)
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'mytest',
'HOST':'127.0.0.1',
'PORT':3306,
'USER':'root',
'PASSWORD':'wb513692'
}
}
2. 告诉Django用pymysql连接MySQL数据库 (默认用的是MySQLDB) ,在app01 _init_.py
import pymysql
pymysql.install_as_MySQLdb()
3. 去app/models.py里面创建类
class Book(models.Model): 类==>数据库的表
id=models.AutoField(primary_key=True), 属性====>数据库表中字段
tiltle=models.CharField(max_length=16)
4. 让Django去数据库帮我创建类对应的数据表
1. python manage.py makemigrations --> 将models.py的改动记录在小本本上
2. python manage.py migrate --> 将变更记录翻译成SQL语句,去数据库执行
注意(如果你所创建的book表,需要在的Django注册APP_name)app01模块下setting.py
INSTALLED_APPS = ['app_name']
3. ORM的使用
1. 操作数据表
2. 操作数据行
5. ORM单表的增删改查
1. 查询
models.Publisher.objects.all() --> 查询所有的出版社数据
models.Publisher.objects.get(id=1) --> 查询id=1的那个出版社
2. 增加
models.Publisher.objects.create(name='xx') --> 创建一个名为xx的出版社
3. 删除
models.Publisher.objects.get(id=2).delete() --> 删除id=2的那个出版社
4. 编辑
obj = models.Publisher.objects.get(id=2) --> 找到要编辑的对象
obj.name = "新值" --> 修改
obj.save() --> 将修改同步到数据库
8. request相关的知识点:
1. request.method --> 获取用户请求的方法
- GET --> 表示用户向我要一个页面这种操作
- POST --> 表示用户向我发送一些数据
2. request获取URL中的参数
/xx/?name=alex&age=9000
request.GET --> 大字典
- request.GET['name'] --> 不推荐
- request.GET.get("name") --> 推荐
3. request.POST --> 一个大字典,存的是用户post发过来的数据
1. request.POST['key'] --> 不推荐
2. request.POST.get('key', '默认值')
class Book(models.Model): 类==>数据库的表
id=models.AutoField(primary_key=True), 属性====>数据库表中字段
tiltle=models.CharField(max_length=16)
4. 让Django去数据库帮我创建类对应的数据表
1. python manage.py makemigrations --> 将models.py的改动记录在小本本上
2. python manage.py migrate --> 将变更记录翻译成SQL语句,去数据库执行
注意(如果你所创建的book表,需要在的Django注册APP_name)app01模块下setting.py
INSTALLED_APPS = ['app_name']
3. ORM的使用
1. 操作数据表
2. 操作数据行
5. ORM单表的增删改查
1. 查询
models.Publisher.objects.all() --> 查询所有的出版社数据
models.Publisher.objects.get(id=1) --> 查询id=1的那个出版社
2. 增加
models.Publisher.objects.create(name='xx') --> 创建一个名为xx的出版社
3. 删除
models.Publisher.objects.get(id=2).delete() --> 删除id=2的那个出版社
4. 编辑
obj = models.Publisher.objects.get(id=2) --> 找到要编辑的对象
obj.name = "新值" --> 修改
obj.save() --> 将修改同步到数据库
8. request相关的知识点:
1. request.method --> 获取用户请求的方法
- GET --> 表示用户向我要一个页面这种操作
- POST --> 表示用户向我发送一些数据
2. request获取URL中的参数
/xx/?name=alex&age=9000
request.GET --> 大字典
- request.GET['name'] --> 不推荐
- request.GET.get("name") --> 推荐
3. request.POST --> 一个大字典,存的是用户post发过来的数据
1. request.POST['key'] --> 不推荐
2. request.POST.get('key', '默认值')
练习题:
1. 什么是wsgi?
2. mvc和mtv的区别以及django属于哪一种?
3. django常见命令
4. 如何通过GET和POST向后台传参
5. django中如何获取POST和GET传入的参数
6. 模板渲染时如何获取列表或字典的元素(根据索引)?
7. 什么是ORM?
本文来自博客园,作者:鱼丸粗面没鱼丸,转载请注明原文链接:https://www.cnblogs.com/Robi-9662/p/9449597.html

浙公网安备 33010602011771号