【Django5】练习

基于Django的拼音打字练习系统开发实践 拼音输入法作为中文输入的基础技术,其核心原理是将汉字转换为拼音进行匹配。现代Web开发框架如Django,通过ORM数据管理和模板系统,为构建在线学习工具提供了高效解决方案。在工程实践中,结合jieba分词库实现智能词组匹配,能显著提升打字练习的真实性。这类系统特别适合中文学习者和办公人群,通过WPM(每分钟字数)和准确率等指标量化进步。本文展示的拼音匹配算法和渐进式练习模式设计,既解决了多音字判定的技术难点,又创造了流畅的用户体验。对于需要处理中文文本的开发者,这些优化数据库查询和前端渲染的经验具有普适参 阅读详情

  1. 全新的界面设计 ,将会带来全新的写作体验;
  2. 在创作中心设置你喜爱的代码高亮样式,Markdown 将代码片显示选择的高亮样式 进行展示;
  3. 增加了 图片拖拽 功能,你可以将本地的图片直接拖拽到编辑区域直接展示;
  4. 全新的 KaTeX数学公式 语法;
  5. 增加了支持甘特图的mermaid语法1 功能;
  6. 增加了 多屏幕编辑 Markdown文章功能;
  7. 增加了 焦点写作模式、预览模式、简洁写作模式、左右区域同步滚轮设置 等功能,功能按钮位于编辑区域与预览区域中间;
  8. 增加了 检查列表2 功能。

功能快捷键

撤销:Ctrl/Command + Z
重做:Ctrl/Command + Y
加粗:Ctrl/Command + B
斜体:Ctrl/Command + I
标题:Ctrl/Command + Shift + H
无序列表:Ctrl/Command + Shift + U
有序列表:Ctrl/Command + Shift + O
检查列表:Ctrl/Command + Shift + C
插入代码:Ctrl/Command + Shift + K
插入链接:Ctrl/Command + Shift + L
插入图片:Ctrl/Command + Shift + G
查找:Ctrl/Command + F
替换:Ctrl/Command + G

H2O is是液体。

210 运算结果是 1024.

- 关于 **甘特图** 语法,参考 [这儿][2],

## UML 图表

可以使用UML图表进行渲染。 [Mermaid](https://mermaidjs.github.io/). 例如下面产生的一个序列图:

```mermaid
sequenceDiagram
张三 ->> 李四: 你好!李四, 最近怎么样?
李四-->>王五: 你最近怎么样,王五?
李四--x 张三: 我很好,谢谢!
李四-x 王五: 我很好,谢谢!
Note right of 王五: 李四想了很长时间, 文字太长了<br/>不适合放在一行.

李四-->>张三: 打量着王五...
张三->>王五: 很好... 王五, 你怎么样?

这将产生一个流程图。:

链接
长方形
圆
圆角长方形
菱形
  • 关于 Mermaid 语法,参考 这儿,

FLowchart流程图

我们依旧会支持flowchart的流程图:

Created with Raphaël 2.3.0 开始 我的操作 确认? 结束 yes no
  • 关于 Flowchart流程图 语法,参考 这儿.

Django5

Django基础知识

下载

  • 下载PythonDJango5只支持3.10以上版本,比如下载3.12版本
  • 可以从python官网下载安装,也可以pycharm安装,但是pycharm安装要新建两次项目。(第一次安装python,然后安装Django,第二次才能初始化出来Django文件结构)
  • 安装DJango
pip install django==5.0.3
pip install pymysql
pip install mysqlclient
django-admin startproject projectName
##或者使用pycharm创建:

创建项目

启动Django

python .\manage.py runserver
#或者直接pycharm运行,效果一样

在这里插入图片描述
django结果

  • manage.py:项目交互 python manage.py [子命令/help]
  • settings.py:配置,比如数据库、跨域
  • urls.py:项目所有url
  • wsgi.py:部署项目
  • project和app,一个app一个模块,所有模块放到django项目里面
    • 通过命令python manage.py startapp appName创建app
      创建app

urls

path(route,view,name,kwargs):
route:
- <int:book_id>指定类型为int且views函数里面类型也是一个整形,不是int会出现404,否则默认为str
- str :非空字符串,不能有/
- int:整形,到view视图函数也是整形
- slug匹配_和-或数字英文字符的字符串,/为分割符号;
- path可以不受限制,匹配非空英文字符串,包括/;
- uuid:匹配非空英文字符,包括/
view:返回response函数 ,可以是视图函数、类视图.as_view()、django.urls.include()(include("movie.urls"))函数返回值
name:url取名字,项目大、url多的时候用,可以反向得到路由,一定要写app_name

  • /book/2
# /项目名/项目名/urls.py
path("book/<book_id>",views.book_detail_path)
#项目名/book模块/views
def book_detail_path(request,book_id):
    return HttpResponse(f"id为{book_id}")#id为2
  • /book?id=2&name=活着
# /项目名/项目名/urls.py
 path("book",views.book_detail_query_string),
#项目名/book模块/views
def book_detail_query_string(request):
    book_id=request.GET.get('id') #找不到id不会抛异常['id']会
    name=request.GET.get('name')
    return HttpResponse(f"id为{book_id},名称为{name}") #id为2,名称为活着
  • 结合:/book/str/12
# /项目名/项目名/urls.py
  path("book/str/<str:book_id>",views.book_str)
#项目名/book模块/views
def book_str(request,book_id):
    return HttpResponse(f"id为{book_id}") #id为12
  • slug:/book/slug/12-1
# /项目名/项目名/urls.py
  path("book/slug/<str:book_id>",views.book_slug),
#项目名/book模块/views
def book_slug(request,book_id):
    return HttpResponse(f"id为{book_id}") #id为12-1
  • path:/book/str/12/1
# /项目名/项目名/urls.py
   path("book/path/<path:book_id>",views.book_path)
#项目名/book模块/views
def book_path(request,book_id):
    return HttpResponse(f"id为{book_id}") #id为12/1
  • path:/movie/detail/12
# /项目名/项目名/urls.py
   path("movie/",include("movie.urls")),
#movie.urls:
from django.urls import path
from . import views
app_name='movie'
urlpatterns=[
    path("list",views.movie_list,name="movie_list"),
    path("detail/<int:movie_id>",views.movie_detail,name="movie_detail"),
]
#movie/views.py
from django.shortcuts import render
from django.http import HttpResponse
from django.template.context_processors import request

def movie_list(request):
    return HttpResponse("电影列表") #电影列表
def movie_detail(request,movie_id):
    return HttpResponse(f"获得的电影id:{movie_id}") #获得的电影id:12
  • 反转,通过name获取地址
    • <name>通过kwargs;
    • request.GET.get通过手动添加;
    • app下的使用appname:name
#任一个views.py
from django.urls import reverse
def index(request):
    print(reverse("index"))# /
    print(reverse("book_detail_path",kwargs={"book_id":1}))# /book/1
    print(reverse("book_detail_query_string")+"?id=1&name=活着") # /book?id=1&name=活着
    print(reverse("book_path",kwargs={"book_id":1}))    # /book/path/1
    print(reverse("movie:movie_list")) #/movie/list
    print(reverse("movie:movie_detail",kwargs={"movie_id":1})) #/movie/detail/1
    return HttpResponse("Hello world")

DTL

一种带有特殊语法的HTML文件,可以被Django编译、传递参数进去,实现数据动态化。编译完成后生成HTML,然后发送到客户端
渲染模板:

  1. html=render_to_string(detail.html)然后return HttpResponse(html)
  2. 直接render:return render(request,'detail.html'),一步到位。
#
# 任一个views.py
from django.shortcuts import render

# Create your views here.
def index(request):
    return render(request,"index.html") #html都在templates里面
  • setting.py

    • BACKEND:templates引擎
    • DIRS:templates,存放模板的路径
    • APP_DIRS:是否允许从app里面找templates/index.html,并且要求INSTALLED_APPS里面添加app
  • 传参

    • json,类和数组都用.多层用多个点
    • 使用context传参
#任一baidu.html
<p>{{username}}</p>
<p>{{ book.name }}</p>
<p>{{ book.id }}</p>
<p>{{qas.0}}</p>
<p>{{qas.1}}</p>
<p>{{qas.2}}</p>
<p>{{qas.2.问题3}}</p>
<p>{{person.name}}</p>
<p>{{person.age}}</p>
# 任一views.py
username = "baidu"
    username = "baidu"
    book={'name':'活着','id':'1'}
    class Person:
        def __init__(self,name,age):
            self.name=name
            self.age=age
    qas=[
        {"问题1":"你是谁"},
        {"问题2":"你要到何处去"},
        {"问题3":"你从何处来"},
    ]
    context={"username":username,"qas":qas,"book":book,"person":Person("张三",19)}
    return render(request,"baidu.html",context=context)
表达式
名称功能
ifif a in b ;elif c==d;else e;endif
forif a in b [reversed];a.c;endfor ;
字典for用items/keys/values都可以;
reversed反向遍历;
{{forloop.counter}}获取索引
counter0从0开始
counter从1开始
revcounter反向到1
revcounter0反向到0
first是否第一个
last是否最后一个
parentloop用上一级的for
emptyfor的东西为空,执行{%empty%}hello
with定义变量{%with a=b%} {{a}} {% endwith %}
url{%url ‘app:视图名’%} 或者{%url ‘index’ %} 根据视图名字反转出url,有参数直接后面传参,字符串需要拼接
#if
{% if "hello" in persons %}
	hello
	
{%else%}
	world
{% endif %}`
#for
<table border="1" align="center">
        <tr align="center">
            <th><p>序列号</p></th>
            <th><p>游戏名称</p></th>
            <th><p>游戏类型</p></th>
        </tr>
{%  for game in games %}
    <tr align="center" >
        <td>{{forloop.counter}}</td>
        <td><p>{{ game.name }}</p></td>
        <td><p>{{ game.type }}</p></td>
    </tr>
    {%empty%}
        <tr align="center" ><p>没有</p></tr>
{%endfor%}
</table>
#url
#/
<a href="{% url 'index' %}">首页</a> #直接视图名
#/home/baidu
<a href="{% url 'home:baidu' %}">百度一下,你就知道</a> #app内用app:视图名
#/book/1
<a href="{% url 'book_detail_path' 1 %}">图书详情</a> #有参数在后面传参
#/book/1
<a href="{% url 'book_detail_path' book_id=1 %}">图书详情</a> #多个参数指定名称
#/book?id=1&name=活着
<a href="{% url 'book_detail_query_string'%}?id=1&name=活着">图书详情</a> #查询字符串需要手动拼接
过滤器

{{value | add:"2"}},参数为:"参数",过滤器为aadd,用|分割

名称功能
add添加参数到value
cut指定字符清除,相当于replace(args,“”)
datedatetime.now() ->date->年/月/日;
Y4位年,m2位月,n可1位月,d两位天,j可1位天
g可1位12时,h2位12时,G可1位24时,H2位24时,i2位分钟,s2位秒
可1位代表1-9没有0前缀
default设置空值/False的默认值
default_if_none设置空值none的默认值
first / last显示列表/元组的第一个元素 / 最后一个元素
floatformat格式化浮点数类型只保留一位小数,小数点后面都是0,保留整数
join将数组或元组根据参数拼接,相当于"/".join(data)
length数组或元组或字典的长度
lower / upper字符全部小写 /大写
random列表/字符串/元组随机选择一个值
safe标记字符串安全,自动解析html
slice切片,相当于python的切片data[1:]
striptags删除html标签
truncatechars超过长度进行切割,切割+拼接三个点作为省略号,…也算3个字符
truncatechars_htmlhtml字符串不切割标签
#cut
{{value| cut:" "}}
#date
 {{value|date:"Y/m/d"}} 
#default
{{value | default:"暂时没有写"}}
#default_if_none
{{value | default_if_none:"暂时没有写,是None"}}
#safe
{{ html | safe }}
#slice
{{ list | slice:"1:"}}
include

include将一些复用模板放到(include)到其他地方
比如header.html里面的内容可以只包含div,和vue的组件一样
传递参数给主模板就可以,子模版直接使用主模板变量
传递参数也可以用with

#将header.html和footer.html放到其他界面
{% include 'header.html' %}
{% include 'footer.html' %}
#传递参数用`with`语句
{% include 'header.html' with username='张三' %}
block

用于填位置

#base.html,有header,body,footer,相当于vue的views/index.vue
<head>
    <meta charset="UTF-8">
    <title>{% block title %}{% endblock %}</title>
    {% block head %}{% endblock %}
</head>
{% block body %}我是base.html的body block{% endblock %}#当有html用extends继承base的时候,可以使用body标签填充这个位置
extends

用于继承,必须放到第一行

#index.html
{% extends 'base.html' %} #继承base.html
{%block title%} #填充base.html的title block
    首页
{%endblock%}
{% block head %}
    <style>
    body{
        background-color: #31a89f;
    }
    </style>
{% endblock %}

{%block body%} #填充base.html的body block
{{ block.super }} #可以继承父的block内容
    hello
    {% include "hotarticle.html" %}
{%endblock%}
{%%}


  1. mermaid语法说明 ↩︎

  2. 检查列表 ↩︎

python django拼音打字练习 这是一个基于 Django 开发的拼音打字练习系统,专为学习汉语拼音的用户设计,特别适合儿童通过平板设备进行拼音练习。系统提供了多种练习模式,包括标准练习、无尽模式和专门为平板设备优化的平板模式。使用 pypinyin 库将中文字符转换为拼音,支持无声调模式,只处理汉字字符,忽略标点符号和其他特殊字符。使用 Django 的会话机制存储用户的练习状态、正确拼音和统计数据,确保练习过程的连续性。- 词句库管理 :点击 "词句库管理" 进入管理页面,添加或删除练习词句。 阅读详情

相关推荐

Python100道经典练习题

关于Python的经典的习题,方便初学者做python知识复习。

Django编程练习——10道

Django项目中实现的一些简单方法

weixin_50517509的博客 817

Django练习题.zip

Django的一些小型的项目题型,需要实现的 技术有基本ORM思想,对数据库的增删改查,图片的上传,Django的高级操作,Django实现的发送邮件。

Django小练习(1)-基础篇

1.安装Django 下载 Django 压缩包,解压并和Python安装目录放在同一个根目录,进入 Django 目录,执行python setup.py install,然后开始安装,Django将要被安装到Python的Lib下site-packages。 Django 下载地址:https://www.djangoproject.com/download/ Django与Pytho...

与君共勉 903

python程序设计习题及答案.doc

只是看书而不知练习用Python来解决一些有意义的问题,那么在学习Python的道路上算是快到头了。 在该文档中,有很多经典的Python程序设计习题,希望可以帮到你。

Django ORM 练习题及答案

主要介绍了Django ORM 练习题及答案,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

【专题】Django期末练习题

NIIT的Django期末复习资料

Pqf18064375973的博客 1040

三款云电脑实测:ToDesk、青椒云、顺网云谁更适合AIGC新手?附详细配置对比

本文针对AIGC新手,深度实测了ToDesk云电脑、青椒云和顺网云三款云电脑服务。通过对比上手门槛、内置生态、操作引导及成本,发现ToDesk云电脑凭借一键启动、丰富预置模型和直观引导,为新手提供了最接近“开箱即用”的零门槛AIGC创作体验,是快速入门AI绘画的高效选择。

assembly8low的博客 1095

django33 orm框架的大量练习题

商品名称,使用 CharField 存储字符串,最大长度为 200 个字符# 商品描述,使用 TextField 存储较长的文本信息# 商品价格,使用 DecimalField 存储十进制数字,最大位数为 10,小数位数为 2# 商品库存数量,使用 IntegerField 存储整数# 商品添加日期,使用 DateTimeField 存储日期和时间,auto_now_add=True 表示在创建对象时自动设置为当前时间。

未来已来,AI时代,学AI编程,做AI量化,就来大鹏AI教育。 887

GAN网络详解析

介绍目前常见的GAN网络,以及GAN网络的基本组成

wm199的博客 6504

单周期CPU设计【Verilog】

第一章 单周期CPU的设计原理 为实现单周期CPU,本文首先研究了单周期CPU的相关理论和工作原理。本章首先简要介绍单周期CPU的基本概念,然后对CPU的工作原理进行简要分析,以便为单周期CPU的设计和开发提供理论基础。 1.1 单周期CPU概述 中央处理器,即CPU,作为计算机系统的运算和控制核心,是信息处理、程序运行的最终执行单元。在CPU内部,电平从低到高变化的瞬间称为时钟上升沿,两个相邻时钟上升沿之间的时间间隔称为一个时钟周期。单周期CPU指的是一条指令的执行在一个时钟周期内完成,然后开始下一

醉酒、冰城外 2万+

django练习

一、单选题(共10题,每题2分) 得分:0.0分 1.下面那个不是路由映射的组成部分 A名称 B视图函数的路径 C视图函数的调用 D匹配模式 正确答案: C 解析: 路由是一个映射,由匹配模式、视图函数路径、名称组成 得分:2.0分 2.可以严格匹配请求路径/user/21/(21是整型参数)是() Ar’/user/(\d+)/’ Br’^/user/(\d+)$ Cr’^user/(\d+)/...

qq_42527108的博客 1814

Ubuntu22.04下,用Fast-LIVO2+3DGS重建桌面小物件:从点云到高清模型的保姆级避坑实录

本文详细介绍了在Ubuntu22.04环境下,使用Fast-LIVO2与3DGS技术进行桌面小物件三维重建的完整流程。从环境配置、数据采集到点云-图像对齐和3DGS训练,提供了针对小物件优化的参数设置和避坑指南,帮助用户实现媲美商业扫描仪的高清模型重建效果。

weixin_30897233的博客 399

Django 5 增删改查 小练习

Django 5 增删改查 小练习 ai 用豆包 或kimi 再修改自己喜欢,django 生成小过程 vscode插件用CodeGeeX 少写很多代码,空格和Tab键用多了,一键生成代码 待续

PieroPc的博客 885

三菱JET伺服限位、原点信号通过PLC刷新设置方法

RWw及RWr软元件的初始设定值,可通过 [Pr. PA01.0 控制模式选择] 及 [Pr. PN22.0 默认映射模式选择] 的值进行切换。JET伺服参数用于CC-Link IE现场网络Basic。循环通信的请求报文与响应报文的收发数据被换读为伺服放大器的对象数据 (RWwn、RWrn)。接下来看映射字2D05具体的内容: 也就是2D05操作字的第九位、第十位、第十一位。响应报文的设定值可进行变更。变更初始设定值时,应变更PDO映射。不同的模式,对应不同的刷新映射内容。GXWORKS3程序。

qq_51166033的博客 8057

PDDL入门

PDDL的组成部分 Objects:对象,世界上我们感兴趣的事物。 Predicates:谓词,我们感兴趣的事实(例如对象的属性),可以为真,也可以为假。 An initial state:初始化状态,我们开始所处的世界状态,即开始时为真的事物。 Goal specification:目标状态,我们想要结束的世界的状态,即我们希望最终成为真实的事情。 Actions/Operators:动作/操作,改变世界状态的方式,即发生的事情改变了事实。 PDDL语法 PDDL 文件的扩展名通常是.pddl 要

工控小白2021的博客 4821

Django 之 练习5: ModelForm

Modelform 生成页面时, 是严格按照 Model 中注册的类型

yang_kaiyue的博客 186

图像去雨:超详细手把手写 pytorch 实现代码(带注释)

占个坑,过几天来写

书山有路,学海无涯! 1万+

Django5—数据库的练习

ORMl练习 模型 假设有以下ORM模型: from django.db import models class Student(models.Model): """学生表""" name = models.CharField(max_length=100) gender = models.SmallIntegerField() class Meta: db_table = 'student' class Course(models.Model):

qq_36581961的博客 199

OpenClaw进阶实战(二十五):抖音企业号——私信回复与视频评论分析

摘要:本文介绍抖音企业号自动化运营方案,突破抖音强风控体系的技术挑战。针对内容生产、私信互动和账号矩阵三大场景,提出混合架构解决方案: 私信自动化:结合关键词触发与随机延迟(45秒±15),实现拟人化回复,支持价格咨询/商务合作等高优先级消息识别 混合技术栈:官方API(合规)+真机RPA(覆盖长尾需求)+AI辅助生成(脚本→剪辑→发布闭环) 安全策略:通过设备指纹模拟、行为间隔随机化和内容差异化处理规避风控,提供每日200条的安全操作阈值。配套OpenClaw技能实现一键部署,包含cookie配置、回复规

PeterPan的博客 144

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

python3.5+django2.0的练习项目——简易个人博客

先是开始的一点废话 话说上个月开始就一直在学习django。 django是python的一个非常著名的web框架,貌似知乎和豆瓣就是用django写的。不过虽然很多人都在学习、使用的人很多,django2.0的文档还并不是丰富,特别是中文教程(因为django2.0是必须使用python3.5+的,所以可想而知很多教程文档都是基于python2.7+django1.x写的)。唯一找到的关于p...

NA_keshu的博客 3313

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

Django小练习(5)-创建新闻博客实例

1.创建项目 minicms 和 应用 news,在命令行窗口输入以下命令 django-admin.pystartprojectminicms cdminicms pythonmanage.pystartappnews 2.创建模型models.py,设计Column,Article,Account表结构 栏目:栏目名称,网址,简介,是否导航显示,是否首页显示 文章:归属栏...

与君共勉 628

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

基于Django的儿童拼音打字练习系统开发实践

拼音打字练习系统是结合教育需求与计算机技术的典型应用,其核心原理是通过汉字转拼音引擎实现文字输入训练。在技术实现上,采用Django框架构建后端服务,利用其ORM系统高效管理词库数据,同时通过原生JS开发轻量级前端,确保在低配设备上的流畅运行。这类系统在教育领域具有重要价值,尤其适合5-12岁儿童的汉语学习场景。项目中特别注重儿童认知特点,设计了降低认知负荷的交互界面和即时反馈机制。关键技术选型包括pypinyin库的多音字处理和SQLite的轻量级部署方案,这些设计使得系统在树莓派等低功耗设备上也能稳定运

weixin_42116058的博客 251

django练习题

django练习题 1、Web框架的本质是什么?为什么要有Web框架? 所有的Web应用,本质上其实就是一个socket服务端,用户端程序其实就是一个socket客户端。对于真实开发中的python web程序来说,一般会分为两部分:服务器程序和应用程序。服务器程序负责对socket服务器进行封装,并在请求到来时,对请求的各种数据进行整理。应用程序则负责具体的逻辑处理。为了方便应用程序的开发,就出...

QQ群166477105Python技术群 1777

django扩展练习记录

可以方便地管理周期性任务(如每天清理缓存、定时发送邮件等)执行后,mysql中,多了两个django_apscheduler开头的表。可以是一个utils包下,创建一个叫task.py的,也有人也在view.py中, 还有人习惯专门改个app来实现定时任务。hex6]方式了,在方法上写装饰器@register_job(scheduler,‘interval’,seconds=20,id=‘clenauo_job2’),就不用下方的 scheduler.add_job()部分了。

Ataoker的博客 1702

django-bootstrap-v5:为Django项目引入Bootstrap 5的强大功能

django-bootstrap-v5:为Django项目引入Bootstrap 5的强大功能 项目介绍 在现代Web开发中,前端框架的重要性不言而喻。Bootstrap作为最受欢迎的前端框架之一,其最新版本Bootstrap 5带来了许多令人兴奋的新特性和改进。django-bootstrap-v5项目旨在将Bootstrap 5的无缝集成带入Django框架,使得Django开发者能够更加轻松...

gitblog_00457的博客 1167
上一篇: 阿里云 ACP -大数据认证学习-MaxCompute
下一篇: 第3章栈和队列
厨 神
博客等级 码龄8年 263粉丝 78原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

厨 神

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值