第一节:整体介绍

  Python版本3.5.2,Django版本1.10

  创建一个Django工程,并且生成一个名字为mainsite的app

django-admin.py startproject myblog
python3 manage.py startapp mainsite

  文件结构如下:

x-power@xpower-CW65S:~/chen/myblog$ tree ./
./
├── mainsite
│   ├── admin.py
│   ├── __init__.py
│   ├── migrations
│   │   └── __init__.py
│   ├── models.py
│   ├── tests.py
│   └── views.py
├── manage.py
└── myblog├── __init__.py├── __pycache__│   ├── __init__.cpython-35.pyc│   └── settings.cpython-35.pyc├── settings.py├── urls.py└── wsgi.py4 directories, 13 files

  介绍一下比较重要的几个文件的用途:

    manage.py    :    Django用于管理网站配置的文件,是一个接受命令行指令的工具集程序。

    setting.py      :    就像他的名字一样是用于对网站的配置进行设置的。(有些地方可能我的理解也不正确欢迎指正,批评!)

    urls.py           :    用来设置每一个URL 的网址要对应的函数以及对应的方式,通常是创建一个新的网页的时候首要编辑的文件。

    wsgi.py          :    是用于部署网站时候用的和主机中网页服务器的沟通接口(如Apache)。

  真正的网站运行逻辑都在我们创建的App里面(这里是mainsite),这个App也体现了Django的Reuse的概念。

  我们已经创建了App但是Dajngo还是不知道有这个App的,我们在setting.py中加入这个App。

INSTALLED_APPS = ('django.contrib.admin','django.contrib.auth','django.contrib.contenttypes','django.contrib.sessions','django.contrib.messages','django.contrib.staticfiles','mainsite',
)

  然后修改最后的时区设置,默认时区是Django的诞生地,我们先让他倒时差,学习中文。

LANGUAGE_CODE = 'zh-CN'TIME_ZONE = 'Asia/Shanghai'

  Django自带了一个数据库Sql.lite。是一个超小型数据库,一般情况下都会用其他数据库的。现在我们先用这个数据库。

  执行以下文件会看到生成了一个db.sqllite3的文件。

 1 x-power@xpower-CW65S:~/chen/myblog$ python3 manage.py migrate
 2 Operations to perform:
 3   Synchronize unmigrated apps: messages, staticfiles
 4   Apply all migrations: admin, auth, sessions, contenttypes
 5 Synchronizing apps without migrations:
 6   Creating tables...
 7     Running deferred SQL...
 8   Installing custom SQL...
 9 Running migrations:
10   Rendering model states... DONE
11   Applying contenttypes.0001_initial... OK
12   Applying auth.0001_initial... OK
13   Applying admin.0001_initial... OK
14   Applying contenttypes.0002_remove_content_type_name... OK
15   Applying auth.0002_alter_permission_name_max_length... OK
16   Applying auth.0003_alter_user_email_max_length... OK
17   Applying auth.0004_alter_user_username_opts... OK
18   Applying auth.0005_alter_user_last_login_null... OK
19   Applying auth.0006_require_contenttypes_0002... OK
20   Applying sessions.0001_initial... OK

  在默认的情况下Django的数据库是通过Model的方式去操作的(这也是我爱Django的一点。),也就是在程序中不会直接面对数据库和数据表,而是先创建好Model,然后通过对Model的操作达到操作数据库的目的。这样做日后可以很方便的更换数据库。(总感觉哪里有点不对,日后就换?)

使用数据库大概分为以下几步:

  1. 在models.py中定义需要使用的类(继承自models.Model)
  2. 详细的设置每一个类中的变量,即数据表的每一个字段
  3. 使用python3 manage.py makemigrations创建数据库和Django的中介文件。
  4. 使用python3 manage.py migrate 同步更新数据库的内容。
  5. 操作python定义的类就相当于操作数据库了。

如同my_blog这个名字的意思一样,在这里我们需要有一个储存博文的数据表。

  最初的时候models.py文件的内容就是这些。

from django.db import models# Create your models here.

修改之后内容如下:

from django.db import models
from django.utils import timezone
# Create your models here.class Post(models.Model):title = models.CharField(max_length = 200,verbose_name = '标题')slug = models.CharField(max_length = 200,verbose_name = '作者')body = models.TextField(verbose_name = '内容')pub_date = models.DateTimeField(default = timezone.now,verbose_name = '发表时间')class Meta:verbose_name="文章内容"                # 后台表的名称verbose_name_plural = "文章内容"ordering = ['-pub_date']    # 排序def __str__(self):return self.title    # 在 Admin界面显示的内容

verbose_name 自己试一下应该可以知道是将原来的名字给换了一下,换成中文。

在设计好表之后,执行makemigrations和migrate操作,然后创建一个超级用户,

python3 manage.py createsuperuser

登陆进去添加五篇文章。

  

  数据库有了文章以后,我们就要读取这些资料然后在首页将其显示出来,在这里简单的介绍一下MTV和MVC结构。                models.py主要负责定义要存取的数据模型,以Python的class 类定义,在后端Django会自动把这个类中的设置对应到数据库系统当中去,不管是使用的是何种数据库。如何将这些数据取出来或者时存进去的逻辑则是在View中,下面我们编写mainsite/views.py文件。

from django.shortcuts import render
from django.http import HttpResponse
from .models import Post# Create your views here.def homepage(request):posts = Post.objects.all()post_list = list()for count,post in enumerate(posts):post_list.append('No.{}:'.format(str(count)) + str(post) + "<br>")return HttpResponse(post_list)

  如果项目比较大的话,为了方便组织url我们需要在mainsite文件夹下新建一个urls.py文件。然后添加内容如下:

from django.conf.urls import url
from . import viewsurlpatterns = [url(r'^$',views.homepage,name = 'homepage'),
]

  它使用正则表达式的匹配方式(不懂的话学习一下正则表达式,非常常用),后面跟着使用那个view的路径,最后面的name = ××× 是用于在html文件中跳转页面之用。

然后在myblog下的urls.py中include这个文件。修改myblog/urls.py如下:

from django.conf.urls import include, url
from django.contrib import adminurlpatterns = [url(r'^admin/', include(admin.site.urls)),url(r'',include('miansite.urls',namespace = "mainsite")),
]

  然后进入主页面(http://127.0.0.1:8000/)可以看到如下:

 

 为什么只有题目呢? 我们可以查看models.py 其中最后一行 self.title。

我们可以修改views.py文件从而让页面变得更加的美观。

from django.shortcuts import render
from django.http import HttpResponse
from .models import Post# Create your views here.def homepage(request):posts = Post.objects.all()post_list = list()for count,post in enumerate(posts):post_list.append('No.{}:'.format(str(count)) + str(post) + "<hr>")post_list.append("<small>" + str(post.body) + "</small><br><br>")return HttpResponse(post_list)

 

 

   差不多一个简单的网页已经出来了,下面说一下工作逻辑,用户提交请求,页面服务器(如Apache),区分是静态文件还是其他,静态文件直接返回内容,其他的话找到setting文件,发现ROOT_URLCONF,然后从中找到相应的url对应的视图,然后视图进行逻辑处理,需要和数据库进行交互的话进行交互,然后将内容放到相应的模板当中。返回给用户。(可能说的有问题,欢迎指正!)





 

  在前面我们的html编码都在views.py文件当中,实际开发的时候是不需要这样做的,将html和后台分开这样才能最大效率,最易维护。如果将其分开的话主要工作为下面几步:

  1. 在setting.py中设置template文件夹的位置。
  2. 在urls.py中创建网址和views.py的对应关系。
  3. 创建html文件,做好排版并安排数据要在页面显示的位置。
  4. 在views.py中取得数据,以render函数把数据送到指定的模板文件当中。

修改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',],},},
]

templates是在项目的根目录下(BASE_DIR),然后在templates下创建一个index.html文件,内容如下:

<!DOCTYPE html>
<html><head><meta charset = 'utf-8'><title>欢迎光临我的博客</title></head><body><h1>欢迎光临我的博客</h1><hr>{{posts}}<hr><h3>现在时刻:{{now}}</h3></body>
</html>

相应的views.py的编码如下:

from django.shortcuts import render
from django.http import HttpResponse
from .models import Post
from datetime import datetime
# Create your views here.def homepage(request):posts = Post.objects.all()now = datetime.now()post_list = list()return render(request,'index.html',{'posts':posts,'now':now})

效果如下,当然这样瞎扯淡是不行的。

我们修改index.html文件如下:

<!DOCTYPE html>
<html><head><meta charset = 'utf-8'><title>欢迎光临我的博客</title></head><body><h1>欢迎光临我的博客</h1><hr>{% for post in posts %}<p style = 'font-family:微软雅黑;font-size:16pt;font-weigth:bold;'>{{post.title}}</p><p style = 'font-family:微软雅黑;font-size:10pt;letter-spacing:1pt;'>{{post.body}}</p>{% endfor %}<hr><h3>现在时刻:{{now}}</h3></body>
</html>

效果如下:

很显然,没有人会直接将全部内容放到首页,将index.html改为如下:

<!DOCTYPE html>
<html><head><meta charset = 'utf-8'><title>欢迎光临我的博客</title></head><body><h1>欢迎光临我的博客</h1><hr>{% for post in posts %}<p style = 'font-family:微软雅黑;font-size:16pt;font-weigth:bold;'><a href = "{url 'mainsite:post' post.id}">{{post.title}}</a></p>{% endfor %}<hr><h3>现在时刻:{{now}}</h3></body>
</html>

上面的链接一行待会解释。

 

效果如下:

然后开始添加点击链接之后的逻辑处理:

def post(request,post_id):try:post_id = int(post_id)post = Post.objects.get(id = post_id)return render(request,'post.html',{'post':post})except:return redirect('/')

怎样才知道是用这个view呢?下面开始修改 url.在mainsite下的urls.py文件中添加内容如下:

url(r'post/(?P<post_id>\d+)/$',views.post,name = 'post'),#这里的name 就是用于在html 文件中进行跳转的标记。

然后效果如下:

  添加post.html如下:

<!DOCTYPE html>
<html><head><meta charset = 'utf-8'><title>欢迎光临我的博客</title></head><body><h1>{{post.title}}</h1><hr><p style = 'font-family:微软雅黑;font-size:12pt;letter-spacing:2pt;'>{{ post.body }}</p><hr><h3><a href = "{% url 'mainsite:homepage' %}">回首页</a></h3></body>
</html>

    可以看到index.html和post.html有许多相同的地方,而且对于一个正式的网站往往需要固定的页首和页尾。

  一个正式的网站往往每一页都需要一些固定的元素用以强调网站的风格。以本堂课的网站为例,到目前为止需要的.html文件如下:

  .html文件关系说明,  base.html include header.html和footer.html                   index.html 和 post.html extends base.html 。

  创建base.html文件写入以下内容:

<!DOCTYPE html>
<html><head><meta charset = 'utf-8'><title>{% block title %} {% endblock %}</title></head><body>{% include 'header.html' %}{% block headmessage %} {% endblock %}<hr>{% block content %} {% endblock %}<hr>{% include 'footer.html' %}</body>
</html> 

下面添加或修改.html如下

index.html

{% extends 'base.html' %}
<!-- 继承自base.html -->
{% block title %}欢迎光临我的博客{% endblock %}
{% block headmessage %}<h3 style = 'font-family:楷体;'>本站文章列表</h3>
{% endblock %}
{% block content %}{% for post in posts %}<p style = 'font-family:微软雅黑;font-size:14pt;font-weigth:bold;'><a href = "{% url 'mainsite:post' post.id %}">{{post.title}}</a></p>{% endfor %}
{% endblock %}

 

post.html

{% extends 'base.html' %}
{% block title %} {{ post.title }} - 文学天地 {% endblock %}
{% block headmessage %}<h3 style = 'font-family:微软雅黑;'>{{ post.title }}</h3><a style = 'font-family:微软雅黑;' href = "{% url 'mainsite:homepage' %}">回首页</a>
{% endblock %}
{% block content %}<p style = 'font-family:微软雅黑;font-size:12pt;letter-spacing:2pt;'>{{ post.body }}</p>
{% endblock %}

footer.html


{% if now %}<p style = 'font-family:微软雅黑;'>现在时刻:{{ now }}</p>
{% else %}<p style = 'font-family:微软雅黑;'>本站内容取自互联网,如有侵权请来信通知下架。</p>
{% endif %}

header.html

<h1 style = 'font-family:微软雅黑;'>欢迎观临    文学天地</h1>

设计这些东西的时候,你一定感觉到很烦,为什么不写好一个css文件然后引用呢?  下面我们开始说这一类 ”静态文件的处理方法“。

我们采用bootstrap去写。采用CDN

    <!-- Latest compiled and minified CSS --><link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u" crossorigin="anonymous"><!-- Optional theme --><link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap-theme.min.css" integrity="sha384-rHyoN1iRsVXV4nD0JutlnGaslCJuC7uwjduW9SVrLvRYooPp2bWYgmgJQIXwl/Sp" crossorigin="anonymous"><!-- Latest compiled and minified JavaScript --><script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js" integrity="sha384-Tc5IQib027qvyjSMfHjOMaLkfuWVxZxUPnCJA7l2mCWNIpG9mGCD8wGNIcPD7Txa" crossorigin="anonymous"></script>

将base.html修改为下面

<!DOCTYPE html>
<html><!-- Latest compiled and minified CSS --><link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u" crossorigin="anonymous"><!-- Optional theme --><link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap-theme.min.css" integrity="sha384-rHyoN1iRsVXV4nD0JutlnGaslCJuC7uwjduW9SVrLvRYooPp2bWYgmgJQIXwl/Sp" crossorigin="anonymous"><!-- Latest compiled and minified JavaScript --><script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js" integrity="sha384-Tc5IQib027qvyjSMfHjOMaLkfuWVxZxUPnCJA7l2mCWNIpG9mGCD8wGNIcPD7Txa" crossorigin="anonymous"></script><head><meta charset = 'utf-8'><title>{% block title %} {% endblock %}</title></head><body><div class = 'container-fluid'>{% include 'header.html' %}<div class = 'panel panel-default'><div class = 'panel-heading'>{% block headmessage %} {% endblock %}</div><div class = 'panel-body'>{% block content %} {% endblock %}</div><div class = 'panel-footer'>{% include 'footer.html' %}</div></body>
</html> 

然后此时运行起来效果如下:

漂亮了 好几个档次。

接着我们引入Bootstrap中Grid概念,通过row和col的设置做出来一般博客网站的侧边连同样也是在base.html中修改。只修改body的内容

 

<div class = 'container-fluid'>{% include 'header.html' %}<div class = 'row'><div class = 'col-sm-2 col-md-2'><div class = 'panel panel-default'><div class = 'panel-heading'><h3>MENU</h3></div><div class = 'panel-body'><div class = 'list-group'><a href = "{% url 'mainsite:homepage' %}" class = 'list-group-item'>Home</a><a href = 'http://tar.so/news' class = 'list-group-item'>时事新闻</a><a href = 'http://drho.tw/news' class = 'list-group-item'>电视新闻</a></div><script type = 'text/javascript' src = 'http://feedjit.com/serve/?vv=1515&amp;tft=3&amp;dd=0&amp;wid=&amp;pid=0&amp;proid=0&amp;bc=FFFFFF&amp;tc=000000&amp;;ww=190&amp;wne=6&amp;srefs=0'></script><noscript><a href='http://feedjit.com/'>Live Traffic Stats<a></noscript></div></div></div><div class = 'col-sm-8 col-md-8'><div class = 'panel panel-default'><div class = 'panel-heading'>{% block headmessage %} {% endblock %}</div><div class = 'panel-body'>{% block content %} {% endblock %}</div><div class = 'panel-footer'>{% include 'footer.html' %}</div></div></div></div></div> 

 

转载于:https://www.cnblogs.com/A-FM/p/6964903.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/371997.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

REST + Spring Security会话问题

REST &#xff0c; 会话 ..等待。 REST应用程序中没有会话&#xff0c;对吗&#xff1f; 好吧&#xff0c;那是真的。 如果我们可以避免会议&#xff0c;我们应该这样做。 REST是无状态的 。 有关无状态性的主要问题是身份验证。 在通常的Web应用程序中&#xff0c;我们习惯于在…

HarmonyOS硬件创新合作伙伴,【HarmonyOS】HarmonyOS智能硬件开发学习指南 - HDC2020

2020年9月10日&#xff0c;华为HarmonyOS 2.0版本正式官宣&#xff01;这一次&#xff0c;借助 HarmonyOS 全场景分布式系统和设备生态&#xff0c;将定义全新的硬件、交互和服务体验&#xff0c;打开焕然一新的全场景世界&#xff0c;不愧是HarmonyOS&#xff01; 那HarmonyOS…

Android 颜色大全color.xml

使用方法&#xff1a; 将color.xml文件拷到res/values目录下后我们只需要R.xml文件名称.name名称就可以调用了(例如:R.color.red) <?xml version"1.0" encoding"utf-8"?><resources> <color name"white">#FFFFFF</color&…

鸿蒙系统华为论坛,2020中国汽车论坛上 华为三大鸿蒙车载OS系统

在今天的2020中国汽车论坛上&#xff0c;华为公布了三大鸿蒙车载OS系统&#xff0c;同时还宣布已经有大量合作伙伴基于鸿蒙OS进行开发。根据智能汽车解决方案BU总裁王军所说&#xff0c;这三大鸿蒙OS分别是——鸿蒙座舱操作系统HOS、智能驾驶操作系统AOS和智能车控操作系统VOS&…

只读ViewObject和声明性SQL模式

介绍 声明式SQL模式被认为是基于实体的视图对象的最有价值的优点之一。 在此模式下&#xff0c;根据UI中显示的属性在运行时生成VO的SQL。 例如&#xff0c;如果某个页面包含一个只有两列EmployeeId和FirstName的表&#xff0c;则查询将生成为“从Employees中选择Employee_ID&a…

android 360加固 例子,[原创]利用VirtualApp实现360加固的soHook简单例子

简单demo&#xff0c;为抛砖引玉吧&#xff01;360的加固我们先写一个最简单的so&#xff0c;带导出函数。这已经足够简单了&#xff0c;界面上打印这个值。运行起来就这样。简单的简直过分。好了&#xff0c;现在我们让360加固一下。拿下来自己签名下&#xff0c;安装好&#…

scrapy架构解析

转载于:https://www.cnblogs.com/tianboblog/p/6986695.html

华为怎么升级Android11,华为EMUI 11/安卓11升级名单曝光 快来看看你的手机是否支持...

华为EMUI 11/安卓11升级名单曝光 快来看看你的手机是否支持2020年02月10日 16:29作者&#xff1a;NJNR205文章出处&#xff1a;泡泡网原创分享2月10日消息&#xff0c;据外媒报道&#xff0c;华为将于今年3月份的华为开发者大会(HDC)上正式宣布新一代EMUI 11。众所周知&#xf…

Scala安装及开发环境搭建

最近想学习下scala&#xff0c;为后面转大数据做一些沉淀。 1. 首先保证jdk已经成功安装 2. 去官网下载scala安装程序 http://www.scala-lang.org/download/all.html 会列出不同的版本. 3. 安装scala 安装路径记得不要有空格否则可能会出现以下这种状况&#xff0c;还有&am…

简单利用HTTP中的PUT协议拿下SHELL

第一次用方法拿shell,之前遇到的都是没有写入权限的。 站太辣鸡&#xff0c;纯粹练手&#xff0c;就不打码了。 此次实战会用到的HTTP请求方法&#xff1a; OPTIONS&#xff0c;PUT&#xff0c;MOVE/COPPY * 战前准备 0x01 什么是OPTIONS方法&#xff1f; 此方法用于请求获得由…

JSF – PrimeFaces和休眠集成项目

本文介绍了如何使用JSF&#xff0c;PrimeFaces和Hibernate开发项目。 下面是一个示例应用程序&#xff1a; 二手技术&#xff1a; JDK 1.6.0_21 Maven的3.0.2 JSF 2.0.3 PrimeFaces 2.2.1 休眠3.6.7 MySQL Java连接器5.1.17 MySQL 5.5.8 Apache Tomcat 7.0 第1步&#xff1…

python——成语接龙小游戏

小试牛刀的简易成语接龙。 思路—— 1、网上下载成语字典的txt版本 2、通过python进行处理得到格式化的成语&#xff0c;并整理成字典&#xff08;python字典查找速度快&#xff09; 3、python程序&#xff0c;查找 用户输入的最后一个字和字典里首字一致的&#xff0c;放入列表…

计划B? 那是计划N…没什么。 拼图于2015年问世

真是一天 当典型的欧洲人逐渐破产时&#xff0c;美国的人们开始喝咖啡。 这就是为什么我在Mark Reinhold最近的新闻中睡个好觉的原因。 他在题为“ Project Jigsaw&#xff1a;火车晚点 ”的帖子中建议将Project Jigsaw推迟到下一个版本Java 9。 在最近的会议和博客文章上&…

html网页背景图片平铺代码,jQuery图片平铺效果制作网页背景图片平铺代码

插件描述&#xff1a;jQuery图片平铺效果制作网页背景图片平铺代码调用JS文件调用插件方法$(function(){// 插件初始化$(img).jqthumb({classname : jqthumb, // 类名. 默认是 jqthumbwidth : 100%, // 新的图像裁剪后宽度. 默认是 100px.height : 100%, // 新的图像裁剪后高度…

spring mvc 文件上传

spring mvc 文件上传 一、单文件上传 配置步骤&#xff1a; 步骤一、在配置文件中配置包扫描器&#xff08;暂且这样配&#xff0c;会出问题&#xff0c;我们下面说解决方案&#xff09; <?xml version"1.0" encoding"UTF-8"?> <beans xmlns…

使用工厂模式解决设计问题

工厂设计模式是面向对象环境中最常用的模式之一。 再次来自“创意设计”模式类别&#xff0c;即有关对象创建的所有信息。 在某些情况下&#xff0c;对象的创建很复杂&#xff0c;可能需要某种程度的抽象&#xff0c;以便客户端代码无法意识到这些复杂性和内部实现细节。 在某些…

完整的Web应用程序Tomcat JSF Primefaces JPA Hibernate –第3部分

Primefaces AutoComplete&#xff0c;JSF转换器 这篇文章从第一部分和第二部分继续。 JSF拥有Converter工具&#xff0c;可以帮助我们从用户视图中获取一些数据并将其转换为从数据库或缓存中加载的对象。 在“ com.converter”包中&#xff0c;创建以下类&#xff1a; packa…

html5首屏加载乐山暴雨,发布前端项目时因chunk-vendors过大导致首屏加载太慢,Vue Build时chunk-vendors的优化方案...

这个优化是两方面的&#xff0c;前端将文件打包成.gz文件&#xff0c;然后通过nginx的配置&#xff0c;让浏览器直接解析.gz文件。1、compression-webpack-plugin插件打包.gz文件安装插件npm install --save-dev compression-webpack-plugin或者yarn add compression-webpack-p…

交大计算机专业怎样,计算机专业高校实力排名,上海交大第五,清华第二,第一毫无争议...

原标题&#xff1a;计算机专业高校实力排名&#xff0c;上海交大第五&#xff0c;清华第二&#xff0c;第一毫无争议计算机专业在近几年可谓是“大热”&#xff0c;众多考生抢破头也想当码农&#xff0c;背后的原因其实不难理解。互联网时代的到来&#xff0c;计算机早已渗透到…

python之路-面向对象

编程范式 编程是 程序 员 用特定的语法数据结构算法组成的代码来告诉计算机如何执行任务的过程 &#xff0c; 一个程序是程序员为了得到一个任务结果而编写的一组指令的集合&#xff0c;正所谓条条大路通罗马&#xff0c;实现一个任务的方式有很多种不同的方式&#xff0c; 对这…