栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

第一单元 初始Django上

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

第一单元 初始Django上

请求方式

GET 获取服务端数据

POST 向服务端提交数据

PUT向服务端上传数据
DELETe删除服务端通过

状态码

200 客户端的请求服务端正常完成

301 客户端请求的资源已被永久移动到新的 URL

302 客户顿请求的资源被临时移动,客户端继续使用原有 URL;

400 客户端的请求语法错误,或无法解析请求
401 请求需要经过身份验证
402 保留状态码,为以后使用做准备的呢
403 服务端直接拒绝客户端的请求
404 客户端请求的资源找不到

502服务端内部错误,服务端错误的网关

静态网站:


所谓静态网站的概念也很简单,就是将数据直接写死在页面,静态网站也因此经常使用在一些数据不经常改变的场景下,网站内容也是相当的稳定,几乎不会怎么更新


动态网站:


Django框架他的主要意义,为页面传递数据,或者接受页面数据再传递给数据库或做一些其他操作

Django框架:MVT模型


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

创建项目  ---桌面创建文件夹--文件夹CMD 命令行输入:


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 运行项目

2.配置模板

在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

5.视图

在子应用的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”付世杰给我修正的
 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/828981.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号