Python web框架王者 Django 5.0发布:20周年了!

Django 5.0:您等待的 3 个功能将于 2023 年 12 月公开 Django 是一部诞生于昆汀·塔伦蒂诺 (Quentin Tarantino) 头脑中的精彩西部电影,其灵感并非来自基于 Python 的同名 Web 框架。它最初发布于 17 年前的 2005 年。那一年对人类来说是艰难的一年,但发生了一些重要的事情。YouTube 诞生了。签署京都议定书并举行Live 8音乐会。Django 也是2005 年的婴儿,17 年后它成为使用 Python 构建的 Web 应用程序的黄金标准。别忘了订阅! 阅读详情
👇我的小册 53章教程:(小白零基础用Python量化股票分析小册) ,原价299,限时特价49。
👇我的小册 AI工具100个实战小案例:(100个AI工具实战小案例) ,原价299,限时早鸟价29。

大家好,我是菜哥,专注写Python内容700+篇原创!

说起Django的发展,时间还要追溯到2003年,在美国堪萨斯州一家报社的两位程序员 Adrian Holovaty 和 Simon Willison 被PHP折磨得够呛——维护臃肿的新闻网站实在太痛苦了。两人一合计:“不如自己写个框架吧!” 于是Django诞生了。

20年过去,这个以爵士吉他手命名的框架,全球11.47%的开发者都在用,成了Python Web开发的中流砥柱。而就在去年冬天,它迎来了里程碑版本:Django 5.0!

01.20年不变的核心:

少写代码,多干正事


Django从出生起就带着鲜明的“反折腾”基因:

“不重复自己”(DRY原则):同样逻辑不写第二遍;

清晰URL路由:网址设计得像说明书般直白;

后台开箱即用:30秒搭出一个内容管理系统。

一位老用户感慨:“离开一两年再回来,居然还能无缝上手! 不像某些前端框架,版本号都换了三轮”。这种“稳定得让人安心”的特质,让Django在快节奏的技术圈牢牢扎根。

02.Django 5.0:

三个让你直呼贴心的小革新


1. 表单渲染,从此告别“复制粘贴地狱”

以前写个带标签、输入框、错误提示的表单,代码长得像裹脚布:

<div class="row">  <div class="col">    {{ form.email.label_tag }}    {% if form.email.help_text %}...{% endif %}    {{ form.email.errors }}    {{ form.email }}  </div>  <!-- 更多字段... --></div>

现在?一行搞定:

<div class="row">  <div class="col">{{ form.email.as_field_group }}</div></div>

as_field_group() 自动打包标签、输入框、错误提示和帮助文字,代码量减少70%。就像把乐高零件预组装好,你只管搭房子。

2. 数据库:“这活儿我熟,交给我算!”

以前在模型里定义“正方形面积”,你得手动写方法计算:

class Square(models.Model):    side = models.IntegerField()
    @property    def area(self):        return self.side * self.side  # 每次访问都要算一遍

现在直接让数据库干活:

class Square(models.Model):    side = models.IntegerField()    area = models.GeneratedField(  # 数据库实时计算并存储        expression=F("side") * F("side"),        output_field=models.BigIntegerField(),        db_persist=True,    )

GeneratedField 像个小监工,盯着side字段一变,立刻重算area。省内存还提速。

3. 默认值?直接跟数据库谈

过去设置“用户年龄默认18”,Python和数据库各管各的:

age = models.IntegerField(default=18)  # 程序给的默认值

现在数据库亲自接管:

from django.db.models.functions import Now
created = models.DateTimeField(db_default=Now())  # 数据库生成时间戳age = models.IntegerField(db_default=18)          # 数据库设默认年龄

避免程序与数据库不同步,尤其对高频写入的字段(如创建时间),再也不怕时间差bug。

03. 升级指南:

新手必读


Python版本:仅支持3.10+,老项目用Python 3.8/3.9的话,先卡在Django 4.2(官方支持到2026年4月)。

第三方库:主流库已适配5.0,老旧插件建议替换。

异步支持增强:登录alogin()、取用户auser()等异步方法更完善,高并发场景更流畅。

一晃眼django都有20年了,虽然我现在还在用3.x,有的时候会用钟情fastapi框架,但是我当时刚开始学python web开发的时候确确实实是被django的强大功能迷倒了。

其实很多框架活不过五年,Django 却把自己活成了“老大哥”:不追风口,不炒概念,每半年给点贴心的小更新,让你安心写业务。20 岁不是终点,更像一次中场哨。哨声响起,我们端起啤酒,对屏幕那头 2005 年的自己喊一句:“嘿,轮子还好用吗?”

好用,并且还会继续转下去,Django加油!

图片

最后推荐一下我们团队写的量化小册的内容(600人+订阅),53篇内容!从Python安装,入门,数据分析,爬取股票基金的历史+实时数据,以及如何写一个简单量化策略,策略回测,如何看资金曲线统统都有介绍,非常超值!

欢迎订阅:原价299 早鸟价49,即可永久阅读,终身有效。现在的价格非常非常低,只要2杯奶茶,就可以终身订阅+课程源码,还有永久陪伴群,火速来吧!

架构——异地多活成熟的架构模式 摘要: 本文系统介绍了三种异地多活架构模式:业务定制型、业务通用型和存储通用型。业务定制型针对核心业务定制化设计,复杂度低但扩展性差;业务通用型通过统一配套服务(流量调度、配置中心等)实现多业务兼容,适合业务量大但一致性要求不高的场景;存储通用型依托分布式一致性数据库(如OceanBase、TiDB)天然支持强一致性,适合金融等高要求场景,但对部署距离和成本有较高限制。文章对比了各模式的优缺点及适用场景,为不同业务需求下的架构选型提供了实践指导。 阅读详情

相关推荐

深入探讨 VQ-VAE:理解变分量化自动编码器

VQ-VAE代表"Variational Quantized Variational Autoencoder",是一种生成模型,通常用于处理高维数据,如图像和音频。它的设计灵感来自于变分自动编码器(VAE)和量化方法,结合了它们的优点,使得 VQ-VAE 能够生成高质量的数据,并在数据表示上引入离散性。VQ-VAE 是一种强大的生成模型,结合了变分自动编码器和量化方法的优点。它在图像和音频生成、数据压缩和生成性对抗网络等领域具有广泛的应用。

DeepViewInsight的博客 7016

Django 5.0解析:最新功能和特色的综合指南-2023 年 12 月的完美礼物

祝福大家!随着 2023 年底的临近,我们有一些令人难以置信的消息要分享。Django 5.0 即将推出,这不是普通的更新。此版本标志着一次重大飞跃,肯定会让所有 Django 爱好者兴奋不已,他们将其视为首选的基于 Python 的 Web 框架。就像提前收到一份意想不到的节日礼物!将 Django 5.0 视为熟悉的 Django 4.0 的颠覆性升级。它为我们的网络开发工具库中本已不可或缺的...

Python数据之道 2251

解决西门子Step 7 basic 找不到许可证问题

你在使用博图软件是否遇到过Step 7 basic 找不到许可证的问题呢!不言怕,今天我就来告诉你该如何处理吧!看步骤: 1.删除原授权的License: 打开Automation License Manager应用,然后我们可以发现仅有的License Key前面有一个时钟,说明它已经过期不可用,我们就要去寻求新的Key. 打开“我的电脑”,选择C盘,点击上方查看 点击选项–>查看 然...

让技术没有门槛 14万+

Django5.0入门基本使用

函数 include() 允许引用其它 URLconfs。每当 Django 遇到 include() 时,它会截断与此项匹配的 URL 的部分,并将剩余的字符串发送到 URLconf 以供进一步处理。在根URLconf 文件中指定我们创建的 polls.urls 模块。在 polls 目录中创建一个 URL 配置,请创建一个名为 urls.py 的文件。

秃了也弱了 2380

matlab2021a版本条件下安装spm

SPM (Statistical Parametric Mapping),中文名叫统计参数映射。统计参数映射是指构建和评估空间扩展的统计过程,用于测试关于功能成像数据的假设。这些想法已经在名为SPM的免费开源软件中得到了实例化。SPM软件包用于脑成像数据序列分析。目前的版本可以分析fMRI, PET, SPECT, EEG和MEG。 可能由于matlab版本更新的问题,按照之前教程所写的安装方法会出现错误,踩了一些坑,但好在最终解决了。。。 1、下载链接,如下 SPM12 Software -...

qq_42356925的博客 8405

远程桌面(RDP)共享USB设备全攻略:不止Hyper-V,你的加密狗和CH340串口也能远程用

本文详细介绍了远程桌面(RDP)共享USB设备的完整解决方案,包括加密狗和CH340串口设备的远程使用技巧。通过RemoteFX USB重定向技术,用户可以在远程会话中无缝使用本地USB设备,提升工作效率。文章涵盖企业级配置、典型设备实战案例及高级故障排除方法,是远程工作者的实用指南。

weixin_42522964的博客 333

Django 5.0 即将发布!关键新特性一览

你好,我是 EarlGrey,一名双语学习者,会一点编程,目前已翻译出版《Python 无师自通》、《Python 并行编程手册》等书籍。点击上方蓝字关注我,获取最新编程及AI干货、高赞工具和项目分享。在后台回复“books”,即可领取超值优质电子书合集。11月20日,Django团队在博客上发布了 Django 5.1rc1版本,这是5.0正式版发布前最后一个版本,等待译者们提交翻译后即可发布。...

codingpy的博客 2242

FoundationPose 4090部署 真实场景迁移

复现并应用foundationpose

m0_52835296的博客 613

Django 5.0 来了!

你好,我是 EarlGrey,一名双语学习者,会一点编程,目前已翻译出版《Python 无师自通》、《Python 并行编程手册》等书籍。点击上方蓝字关注我,获取最新编程及AI干货、高赞工具和项目分享。在后台回复“books”,即可领取超值优质电子书合集。今天早些时候,Django团队正式发布了 Django 5.0 版本,现在通过 pip 进行安装,就已经是 5.0 了:pipinstall...

codingpy的博客 1563

Simulink模块库介绍(一)——信号源模块

Simulink模块库介绍(一)——信号源模块库目录Clock模块Digital Clock模块Band-Limited White Noise模块 目录 simulink模块库中提供了丰富的信号源模块组。逐一介绍,算是对之前做个总结吧 Clock模块 通过时钟模块,输出的时间作为判断呢,如下图,前2s之前为高斯白噪声,后2s为正弦曲线,共计10s。 Digital Clock模块 数字时钟模块主要用于离散系统的计时,sample time表示采用时间,如下图:分别是1s和0.5s的采样时间 Band-

5万+

初探802.11协议(6)——Wi-Fi 6新特性简介

Wi-Fi 6新机制(特性)介绍

FanFF的博客 1522

Django 5.0正式发布,最流行Python Web框架

随着 Django 5.0 的发布,Django 4.2 已结束其 mainstream 支持,最后一个小错误修复版本 4.2.8 已于昨天发布。该特性简化了 Django 表单字段相关元素的渲染,例如标签、小部件、帮助文本和错误等。根据 JetBrains 公布的 2022 Python 开发者调查结果,Python Web 框架的三巨头依旧是 Flask、Django 和 FastAPI。此外还引入了字段组 (field group),用于简化 Django 表单字段的相关元素的渲染。

A18285759691的博客 1248

手把手教你学Simulink实例--基于simulink搭建起一个基础的矩阵变换器仿真模型

矩阵变换器(Matrix Converter, MC)是一种直接将交流电源转换为另一频率和幅值的交流电源的电力电子设备,它不需要中间的直流环节。这种变换器通过控制一组双向开关来实现对输入电压的精确控制,从而产生所需的输出电压波形。Simulink提供了强大的仿真环境,可以用于设计、分析和验证基于矩阵变换器的电源系统。

MHD0815的博客 337

Django5.0正式发布!

django5.0发布新特性,包括:管理员界面的 Facet 过滤器、简化的表单字段渲染模板、数据库计算的默认值、数据库生成的模型字段、声明字段Choice的更多选项等介绍。

cdl3的博客 1462

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

【5.0】Django框架之请求生命周期流程图

Django框架之请求生命周期流程图 解释图: 浏览器>> 发送请求(Http请求) >> web服务网关接口(django默认的wsgiref模块不能承受高并发,最大只有1000左右) >> 中间件 >> 缓存数据库(返回给中间件已经缓存过的数据) >> urls.py(路由层) >> views.py(视图层) &g...

Chimengmeng的博客 245

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

Django基础5.0,模型层(一)单表操作

Django5.0 -----借鉴:cls超:点击这里 ORM简介 MVC或者MVC框架中包括一个重要的部分,就是ORM,它实现了数据模型与数据库的解耦,即数据模型的设计不需要依赖于特定的数据库,通过简单的配置就可以轻松更换数据库,这极大的减轻了开发人员的工作量,不需要面对因数据库变更而导致的无效劳动 ORM是“对象-关系-映射”的简称。(Object Relational ...

weixin_30265171的博客 310

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

Django 5.0正式发布,最流行Python Web框架!

当我学到一定基础,有自己的理解能力的时候,会去阅读一些前辈整理的书籍或者手写的笔记资料,这些笔记详细记载了他们对一些技术点的理解,这些理解是比较独到,可以学到不一样的思路。Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照下面的知识点去找对应的学习资源,保证自己学得较为全面。观看全面零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。该字段可在所有支持的数据库后端上使用,以创建始终根据其他字段计算的字段。

白帽阿叁的博客 1214

Django5.0发布

我就更新一篇Django5.0的更新分析。

weixin_42908597的博客 1407

Django 5.0来啦,能否成为最流行的Python Web框架!

随着 Django 5.0 的发布,Django 4.2 已结束其 mainstream 支持,最后一个小错误修复版本 4.2.8 已于昨天发布。根据 JetBrains 公布的 2022 Python 开发者调查结果,Python Web 框架的三巨头依旧是 Flask、Django 和 FastAPI。此外还引入了字段组 (field group),用于简化 Django 表单字段的相关元素的渲染。支持创建数据库生成的列。该字段可在所有支持的数据库后端上使用,以创建始终根据其他字段计算的字段。

2401_86168842的博客 798

Django 5.0项目部署实战(从开发到上线全链路解析)

掌握Django 5.0项目部署全流程,解决从开发到上线的常见难题。涵盖Nginx+Gunicorn配置、静态文件处理、HTTPS部署及性能优化,适用于Linux生产环境。提供可复用的部署脚本与安全实践,大幅提升上线效率,值得收藏。

PixelWander的博客 965

Django 5.0 发布:经典 Web 框架还能继续统治市场吗?

Django是一个开源的高级Python Web框架,它遵循MVC(模型-视图-控制器)架构模式,并且内置了许多开箱即用的功能,例如用户认证、管理后台、表单处理等。自2005年首次发布以来,Django因其安全性高、可扩展性强以及社区活跃度高等特点而成为许多开发者首选的技术栈之一。

2501_91305236的博客 463

Python之道1-环境搭建与pycharm的配置django安装及MySQL数据库配置

近期做那个python的开发,今天就来简单的写一下开发路线的安装及配置, 开发路线 Python3.6.1+Pycharm5.0.6+Django1.11+MySQL5.7.18 1-安装Python3.6.1   Python2.x 与3.x的版本在语法上稍有不同,区别在于输出语句的不同,这个可以看相关的文档。   Python3.6.1,可以在Python的官网上下载:https://...

weixin_30640291的博客 742
上一篇: 又一个时代结束了!AWS上海AI研究院突然解散,这次真的不一样了
下一篇: 前字节员工哭诉:劝各位做好失业准备,如今职场生存法则彻底变了!
菜鸟学Python
博客等级 码龄9年 8062粉丝 571原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值