请求方式
GET 获取服务端数据
POST 向服务端提交数据
PUT向服务端上传数据
DELETe删除服务端通过
200 客户端的请求服务端正常完成
301 客户端请求的资源已被永久移动到新的 URL
302 客户顿请求的资源被临时移动,客户端继续使用原有 URL;
400 客户端的请求语法错误,或无法解析请求
401 请求需要经过身份验证
402 保留状态码,为以后使用做准备的呢
403 服务端直接拒绝客户端的请求
404 客户端请求的资源找不到
502服务端内部错误,服务端错误的网关
静态网站:
所谓静态网站的概念也很简单,就是将数据直接写死在页面,静态网站也因此经常使用在一些数据不经常改变的场景下,网站内容也是相当的稳定,几乎不会怎么更新
动态网站:
Django框架他的主要意义,为页面传递数据,或者接受页面数据再传递给数据库或做一些其他操作
M-model:模型,操作数据库功能部分
V-View:视图,处理业务逻辑的位置,提取数据、获取用户数据等等操作都在这里
T-Template:模版,用来展示视图操作后的数据,也可以在模版中为用户提供表单,让用户可以提交数据
MVC模型
M-model:模型,和MVT的 m 是一样的,同样用来操作数据库
V-view:视图,和MVT的 T 是一样的,用来进行数据的可视化
C-Controller:控制器,相当于MVT中的 C,用来进行数据的逻辑操作
安装django
win+r 命令窗口输入: pip install django==2.2.2
pip list
django-admin startproject 项目名
python .manage.py runserver
搜索命令:python manage.py --help
子应用创建:python manage.py startapp 子应用名
第二单元 初始django下 1.django项目和应用创建命令
django-admin startproject 项目名
python manage.py startapp 子应用名
python manage.py runserver 运行项目
在setting文件中配置模板
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [os.path.join(BASE_DIR, 'templates')],# 模板配置
'APP_DIRS': True,
'OPTIONS': {
'context_processors': [
'django.template.context_processors.debug',
'django.template.context_processors.request',
'django.contrib.auth.context_processors.auth',
'django.contrib.messages.context_processors.messages',
],
},
},
]
2.在根目录下创建templates文件夹
3.模板页面的渲染{{}} for if
4.ORM映射 4.1 安装自定义应用INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'myapp', # 注册子应用
]
4.2 配置数据库
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql', # 使用mysql数据库
'HOST': 'localhost', # 主机
'PORT': 3306, # 端口
'USER': 'root', # 用户名
'PASSWORD': 'root', # 密码,根据自己的密码来
'NAME': 'game', # 数据库
}
}
4.3安装数据库
在与项目同名的init.py文件中添加以下代码
import pymysql pymysql.install_as_MySQLdb()4.4 编写模型类
在子应用的models.py文件中编写代码
from django.db import models
# Create your models here.
# 模型类 会自动生成 id字段
class Game(models.Model):
# CharField 字符串 max_length 最大长度 verbose_name 后台管理的字段名
name = models.CharField(max_length=20, verbose_name='角色名')
# IntegerField 整型
atk = models.IntegerField(verbose_name='攻击力')
level = models.IntegerField(verbose_name='等级')
4.5 迁移
生成迁移文件:python .manage.py makemigrations
执行迁移:python .manage.py migrate
在子应用的views.py文件中编写视图代码,来处理业务逻辑
# 视图函数
def MyView(request):
# return HttpResponse('这是我的第一个视图') # 返回一个相应
content = { # 传递给页面的数据,格式是字典
'money': 100,
'scores': [100, 99, 95, 80, 85],
'game': {
'name': '龙傲天',
'atk': '999',
'def': '10',
'level': '18',
}
}
return render(request, 'index.html', content) # 返回一个模板页面
6.路由
为了让视图生效,需要编写路由代码
from django.contrib import admin
from django.urls import path
from myapp import views
# 主路由
urlpatterns = [
path('admin/', admin.site.urls),
path('myview/', views.MyView), # 新增路由
]
7.模版语句循环、分支
for 标签
循环列表
{% for var in sequence %}
{{ var }}
{% endfor %}
循环字典
{% for key,value in sequence.items %}
{{ key }}:{{ value }}
{% endfor %}
if标签
{% if test_list %}
列表不为空
{% elif test_dict %}
列表为空,字典不为空
{% else %}
列表字典均为空
{% endif %}
报错内容
安装import pymysql
pymysql.install_as_MySQLdb()
报的错误
query = query.decode(errors='replace')
AttributeError: 'str' object has no attribute 'decode'
修改后正确的单词“encode”付世杰给我修正的



