Python练习Django项目——学习笔记

2024-06-23 08:32

本文主要是介绍Python练习Django项目——学习笔记,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

    学习如何使用Django(http://djangoproject.com/ )来开发一个名为“学习笔记”(Learning Log)的项目,这是一个在线日志系统,让你能够记录所学习的有关特定主题的知识。

    首先为这个项目制定规范,然后为应用程序使用的数据定义模型。我们将使用Django的管理系统来输入一些初始数据,再学习编写视图和模板,让Django能够为我们的网站创建网页。最后将改进“学习笔记”项目,再将其部署到活动的服务器,让你和你的朋友能够使用它。

    Django是一个Web框架 ——一套用于帮助开发交互式网站的工具。Django能够响应网页请求,还能让你更轻松地读写数据库、管理用户等。

建立项目

制定规范

    完整的规范详细说明了项目的目标,阐述了项目的功能,并讨论了项目的外观和用户界面。与任何良好的项目规划和商业计划书一样,规范应突出重点,帮助避免项目偏离轨道。这里不会制定完整的项目规划,而只列出一些明确的目标,以突出开发的重点。我们制定的规范如下:

    编写一个名为“学习笔记”的Web应用程序,让用户能够记录感兴趣的主题,并在学习每个主题的过程中添加日志条目。“学习笔记”的主页对这个网站进行描述,并邀请用户注册或登录。用户登录后,就可创建新主题、添加新条目以及阅读既有的条目。

建立虚拟环境

    要使用Django,首先需要建立一个虚拟工作环境。虚拟环境是系统的一个位置,你可以在其中安装包,并将其与其他Python包隔离。将项目的库与其他项目分离是有益的,且为了“学习笔记”部署到服务器,这也是必须的。为项目新建一个目录,将其命名为learning_log,再在终端中切换到这个目录,并创建一个虚拟环境。

Windows安装virtualenv:

pip install virtualenv
conda install virtualenv    #有Anaconda的安装命令

切换到learning_log目录,创建虚拟环境:

(ll_env)learning_log> virtualenv ll_env
New python executable in ll_env/bin/python
Installing setuptools, pip...done.

激活虚拟环境:

ll_env\Scripts\activate

停止使用虚拟环境

deactivate
安装Django
(ll_env)learning_log> pip install Django
Installing collected packages: Django
Successfully installed Django
Cleaning up...

在Django中创建项目

在依然处于活动的虚拟环境的情况下(ll_env包含在括号内),执行如下命令来新建一个项目:

❶ (ll_env)learning_log> django-admin startproject learning_log .
❷ (ll_env)learning_log> dirlearning_log ll_env manage.py
❸ (ll_env)learning_log> dir learning_log__init__.py  settings.py  urls.py  wsgi.py

    ❶处的命令让Django新建一个名为learning_log的项目。这个命令末尾的句点让新项目使用合适的目录结构,这样开发完成后可轻松地将应用程序部署到服务器。

    注意:千万别忘了这个句点,否则部署应用程序时将遭遇一些配置问题。如果忘记了这个句点,就将创建的文件和文件夹删除(ll_env除外),再重新运行这个命令。

    在❸处,运行了命令dir,结果表明Django新建了一个名为learning_log的目录。它还创建了一个名为manage.py的文件,这是一个简单的程序,它接受命令并将其交给Django的相关部分去运行。我们将使用这些命令来管理诸如使用数据库和运行服务器等任务。

   文件settings.py指定Django如何与你的系统交互以及如何管理项目。在开发项目的过程中,我们将修改其中一些设置,并添加一些设置。    文件urls.py告诉Django应创建哪些网页来响应浏览器请求。    文件wsgi.py帮助Django提供它创建的文件,这个文件名是web server gateway interface(Web服务器网关接口 )的首字母缩写。

创建数据库

    Django将大部分与项目相关的信息都存储在数据库中,因此我们需要创建一个供Django使用的数据库。为给项目“学习笔记”创建数据库,请在处于活动虚拟环境中的情况下执行下面的命令:

  (ll_env)learning_log> python manage.py migrate
❶ Operations to perform:Synchronize unmigrated apps: messages, staticfilesApply all migrations: contenttypes, sessions, auth, admin--snip--Applying sessions.0001_initial... OK
❷ (ll_env)learning_log> dirdb.sqlite3  learning_log  ll_env  manage.py

    我们将修改数据库称为迁移 数据库。首次执行命令migrate 时,将让Django确保数据库与项目的当前状态匹配。在使用SQLite的新项目中首次执行这个命令时,Django将新建一个数据库。在❶处,Django指出它将创建必要的数据库表,用于存储我们将在这个项目(Synchronize unmigrated apps,同步未迁移的应用程序 )中使用的信息,再确保数据库结构与当前代码(Apply all migrations,应用所有的迁移 )匹配。

    在❷处,我们运行了命令dir ,其输出表明Django又创建了一个文件——db.sqlite3。SQLite是一种使用单个文件的数据库,是编写简单应用程序的理想选择,因为它让你不用太关注数据库管理的问题。

查看项目

下面来核实Django是否正确地创建了项目。为此,可执行命令runserver ,如下所示:

(ll_env)learning_log$ python manage.py runserverPerforming system checks...❶ System check identified no issues (0 silenced).March 20, 2018 - 16:26:51
❷ Django version 2.0.3, using settings 'learning_log.settings'
❸ Starting development server at http://127.0.0.1:8000/Quit the server with CONTROL-C.
    Django启动一个服务器,让你能够查看系统中的项目,了解它们的工作情况。当你在浏览器中输入URL以请求网页时,该Django服务器将进行响应:生成合适的网页,并将其发送给浏览器。
    在❶处,Django通过检查确认正确地创建了项目;在❷处,它指出了使用的Django版本以及当前使用的设置文件的名称;在❸处,它指出了项目的URL。URL http://127.0.0.1:8000/表明项目将在你的计算机(即localhost)的端口8000上侦听请求。localhost是一种只处理当前系统发出的请求,而不允许其他任何人查看你正在开发的网页的服务器。

    现在打开一款Web浏览器,并输入URL:http://localhost:8000/;如果这不管用,请输入http://127.0.0.1:8000/。你将看到下图页面,这个页面是Django创建的,让你知道到目前为止一切正常。现在暂时不要关闭这个服务器。若要关闭这个服务器,按Ctrl + C即可。

创建应用程序

    Django项目 由一系列应用程序组成,它们协同工作,让项目成为一个整体。前面打开的终端窗口中应该还运行着runserver 。请再打开一个终端窗口,并切换到manage.py所在的目录。激活该虚拟环境,再执行命令startapp :

learning_log> ll_env/Scripts/activate
(ll_env)learning_log> python manage.py startapp learning_logs
❶ (ll_env)learning_log> dirdb.sqlite3  learning_log  learning_logs  ll_env  manage.py
❷ (ll_env)learning_log> dir learning_logs/admin.py  __init__.py  migrations  models.py  tests.py  views.py

    命令startapp appname 让Django建立创建应用程序所需的基础设施。新增了一个文件夹learning_logs,其中最重要的文件是models.py、admin.py和views.py。我们将使用models.py来定义我们要在应用程序中管理的数据。

定义模型Topic

    可能涉及的数据:每位用户都需要在学习笔记中创建很多主题。用户输入的每个条目都与特定主题相关联,这些条目将以文本的方式显示。存储每个条目的时间戳,以便告诉用户各个条目都是什么时候创建的。
打开文件models.py,文件本身导入了模块models,还让我们创建自己的模型

from django.db import models# Create your models here.
模型告诉Django如何处理应用程序中存储的数据。在代码层面,模型就是一个类,就像前面讨论的每个类一样,包含属性和方法
from django.db import modelsclass Topic(models.Model):"""用户学习的主题"""text = models.CharField(max_length=200)date_added = models.DateTimeField(auto_now_add=True)def __str__(self):"""返回模型的字符串表示"""return self.text

        #创建Topic类,继承Model——Django中一个定义了模型基本功能的类

#属性text是一个Charfield——由字符或文本组成的数据,存储少量文本时使用CharField,如标题、名称等,

        #定义CharField时必须告诉Django在数据库中预留多少空间,这里设置为200

        #属性date_added是一个DateTimeField——记录日期和时间的数据,实参auto_now_add=True,每当用户创建新主题时,都让Django将这个属性自动设置成当前日期和时间

      我们需要告诉Django,默认应使用哪个属性来显示有关主题的信息。Django调用方法__str__() 来显示模型的简单表示。在这里,我们编写了方法__str__() ,它返回存储在属性text 中的字符串.

注意  Python 2.7,应调用方法__unicode__() ,而不是__str__() ,但其中的代码相同。

激活模型

    要使用模型,必须让Django将应用程序包含到项目中。为此,打开settings.py(它位于目录learning_log/learning_log中),你将看到一个这样的片段,即告诉Django哪些应用程序安装在项目中:

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

    这是一个元组,告诉Django项目是由哪些应用程序组成的。请将INSTALLED_APPS 修改成下面这样,将前面的应用程序添加到这个元组中:

--snip--
INSTALLED_APPS = (--snip--'django.contrib.staticfiles',# My apps'learning_logs',
)
--snip--

    通过将应用程序编组,在项目不断增大,包含更多的应用程序时,有助于对应用程序进行跟踪。这里新建了一个名为My apps的片段,当前它只包含应用程序learning_logs。

    接下来,需要让Django修改数据库,使其能够存储与模型Topic 相关的信息。为此,在终端窗口中执行下面的命令:

(ll_env)learning_log> python manage.py makemigrations learning_logs
Migrations for 'learning_logs':learning_logs\migrations\0001_initial.py:- Create model Topic

    命令makemigrations 让Django确定该如何修改数据库,使其能够存储与我们定义的新模型相关联的数据。输出表明Django创建了一个名为0001_initial.py的迁移文件,这个文件将在数据库中为模型Topic 创建一个表。

下面来应用这种迁移,让Django替我们修改数据库:

(ll_env)learning_log> python manage.py migrate--snip--
Running migrations:❶ Applying learning_logs.0001_initial... OK

    检查的❶处的输出行,在这里,Django确认为learning_logs 应用迁移时一切正常(OK )。

    每当需要修改“学习笔记”管理的数据时,都采取如下三个步骤:修改models.py;对learning_logs 调用makemigrations ;让Django迁移项目.

Django管理网站

    为应用程序定义模型时,Django提供的管理网站(admin site)让你能够轻松地处理模型。网站的管理员可使用管理网站,但普通用户不能使用。在本节中,我们将建立管理网站,并通过它使用模型Topic来添加一些主题。

创建超级用户

    Django允许创建具备所有权限的用户——超级用户。权限决定了用户可执行的操作。最严格的权限设置只允许用户阅读网站的公开信息;注册了的用户通常可阅读自己的私有数据,还可查看一些只有会员才能查看的信息。为有效地管理Web应用程序,网站所有者通常需要访问网站存储的所有信息。优秀的管理员会小心对待用户的敏感信息,因为用户对其访问的应用程序有极大的信任。

(ll_env)learning_log>python manage.py createsuperuser
❶ Username (leave blank to use 'ehmatthes'): ll_admin
❷ Email address:
❸ Password:Password (again):Superuser created successfully.
注意

  可能会对网站管理员隐藏有些敏感信息。例如,Django并不存储你输入的密码,而存储从该密码派生出来的一个字符串——散列值。输入密码Django计算其散列值,并将结果与存储的散列值进行比较。如果相同,就通过身份验证。

向管理网站注册模型

    Django自动在管理网站中添加了一些模型,如User 和Group ,但对于我们创建的模型,必须手工进行注册。我们创建应用程序learning_logs 时,Django在models.py所在的目录中创建了一个名为admin.py的文件,:

admin.py

from django.contrib import admin# 在这里注册你的模型
    为向管理网站注册Topic ,请输入下面的代码:
from django.contrib import admin
❶ from learning_logs.models import Topic
❷ admin.site.register(Topic)

    这些代码导入我们要注册的模型Topic (见❶),再使用admin.site.register() (见❷)让Django通过管理网站管理我们的模型。

    现在,激活虚拟环境,并执行命令python manage.py runserver并运行服务器,使用超级用户账户访问管理网站:访问http://localhost:8000/admin/ ,并输入你刚创建的超级用户的用户名和密码,这个网页让你能够添加和修改用户和用户组,还可以管理与刚才定义的模型Topic 相关的数据。


添加主题

    向管理网站注册Topic后,添加第一个主题。单击Topics进入主题网页,单击Add,你将看到一个用于添加新主题的表单。在第一个方框中输入Chess ,再单击Save。再创建一个主题,以便有更多的数据可供使用。单击Add,并创建另一个主题Rock Climbing 。单击Save后,将重新回到主题管理页面,其中包含主题Chess和Rock Climbing。

定义模型Entry

    要记录学到的国际象棋和攀岩知识,需要为用户可在学习笔记中添加的条目定义模型。每个条目都与特定主题相关联,这种关系被称为多对一关系,即多个条目可关联到同一个主题。

from django.db import models# Model是Django中一个定义了模型基本功能的类
class Topic(models.Model):--snip--class Entry(models.Model):"""学到的有关某个主题的具体知识"""topic = models.ForeignKey(Topic,on_delete=models.CASCADE)text = models.TextField()date_added = models.DateTimeField(auto_now_add=True)class Meta:verbose_name_plural = 'entries'def __str__(self):return self.text[:50]+"..."

#属性topic 是一个ForeignKey 实例,外键是一个数据库术语,引用了数据库中的另一条记录; #这些代码将每个条目关联到特定的主题。每个主题创建时,都给它分配了一个键(或ID)。 需要在两项数据之间建立联系时,Django使用与每项信息相关联的键。Django2.0版本外键要求添加on_delete参数

        #属性text 是一个TextField 实例,不需要长度限制的文本数据

        #属性date_added按创建顺序呈现条目,并在每个条目旁边放置时间戳。

        #在Entry 类中嵌套了Meta 类。Meta 存储用于管理模型的额外信息,设置一个特殊属性,让Django需要时使用Entries表示多个条目,没有这个类将使用Entrys来表示多个条目

        #方法__str__() 告诉Django,呈现条目时应显示哪些信息

迁移模型Entry

    添加一个模型,就迁移一次数据库。过程:修改models.py,执行命令python manage.py makemigrations app_name ,再执行命令python manage.py migrate 。

(ll_env)learning_log> python manage.py makemigrations learning_logs
Migrations for 'learning_logs':learning_logs\migrations\0002_entry.py:- Create model Entry
(ll_env)learning_log> python manage.py migrate
Operations to perform:--snip--
Running migrations:Applying learning_logs.0002_entry... OK

    生成了一个新的迁移文件——0002_entry.py,它告诉Django如何修改数据库,使其能够存储与模型Entry 相关的信息。执行命令migrate ,Django应用了这种迁移且一切顺利。

向管理网站注册Entry

    注册模型Entry 。修改admin.py:

from django.contrib import admin
from learning_logs.models import Topic, Entry
admin.site.register(Topic)
admin.site.register(Entry)

    返回到http://localhost/admin/ ,learning_logs下列出了Entries。单击Entries的Add链接,或者单击Entries再选择Add entry。你将看到一个下拉列表,选择要为哪个主题创建条目,还有一个用于输入条目的文本框。从下拉列表中选择Chess,并添加一个条目。

        国际象棋的第一个阶段是开局,大致是前10步左右。在开局阶段,最好做三件事情:将象和马调出来;努力控制棋盘的中间区域;用车将王护住。当然,这些只是指导原则。学习什么情况下遵守这些原则、什么情况下不用遵守很重要。

    单击Save时,将返回到主条目管理页面。使用text[:50] 作为条目的字符串表示的好处:管理界面中,只显示了条目的开头部分而不是其所有文本,这使得管理多个条目容易得多。

    再来创建一个国际象棋条目,并创建一个攀岩条目,以提供一些初始数据。

        在国际象棋的开局阶段,将象和马调出来很重要。这些棋子威力大,机动性强,在开局阶段扮演着重要角色。

         最重要的攀岩概念之一是尽可能让双脚承受体重。有谬误认为攀岩者能依靠手臂的力量坚持一整天。实际上,优秀的攀岩者都经过专门训练,能够尽可能让双脚承受体重。

Django shell

    输入一些数据后,就可通过交互式终端会话以编程方式查看这些数据了。这种交互式环境称为Django shell,是测试项目和排除其故障的理想之地。下面是一个交互式shell会话示例:

(ll_env)learning_log> python manage.py shell
>>> from learning_logs.models import Topic
>>> Topic.objects.all()
[<Topic: Chess>, <Topic: Rock Climbing>]

    在活动的虚拟环境中执行时,命令python manage.py shell 启动一个Python解释器,可使用它来探索存储在项目数据库中的数据。在这里,我们导入了模块learning_logs.models 中的模型Topic ,然后使用方法Topic.objects.all() 来获取模型Topic 的所有实例;它返回的是一个列表,称为查询集(queryset)。

    查看分配给每个主题对象的ID:

>>> topics = Topic.objects.all()
>>> for topic in topics:
...   print(topic.id, topic)
...
1 Chess
2 Rock Climbing
    知道对象的ID后,就可获取该对象并查看其任何属性。
 t = Topic.objects.get(id=1)
>>> t.text
'Chess'
>>> t.date_added
datetime.datetime(2018, 3, 21, 6, 29, 14, 111938, tzinfo=<UTC>)
查看与主题相关联的条目.属性topic 是一个ForeignKey ,将条目与主题关联起来。利用这种关联,Django能够获取与特定主题相关联的所有条目,
 >>> t.entry_set.all()[<Entry: The opening is the first part of the game, roughly...>, <Entry: In the opening phase of the game, it's important t...>]

    为通过外键关系获取数据,可使用相关模型的小写名称、下划线和单词set.例如,假设你有模型Pizza 和Topping ,而Topping通过一个外键关联到Pizza ;如果你有一个名为my_pizza 的对象,表示一张比萨,就可使用代码my_pizza.topping_set.all() 来获取这张比萨的所有配料。

    编写用户可请求的网页时,我们将使用这种语法。确认代码能获取所需的数据时,shell很有帮助。如果代码在shell中的行为符合预期,那么它们在项目文件中也能正确地工作。如果代码引发了错误或获取的数据不符合预期,那么在简单的shell环境中排除故障要比在生成网页的文件中排除故障容易得多。

注意

  每次修改模型后,你都需要重启shell,这样才能看到修改的效果。要退出shell会话,可按Ctr + D;如果你使用的是Windows系统,应按Ctr + Z,再按回车键。

创建网页:学习笔记主页

    使用Django创建网页的过程通常分三个阶段:定义URL、编写视图和编写模板。首先,你必须定义URL模式。URL模式描述了URL是如何设计的,让Django知道如何将浏览器请求与网站URL匹配,以确定返回哪个网页。

    每个URL都被映射到特定的视图 ——视图函数获取并处理网页所需的数据。视图函数通常调用一个模板,后者生成浏览器能够理解的网页。定义学习笔记主页的URL、编写其视图函数并创建一个简单的模板。

映射URL

    用户通过在浏览器中输入URL以及单击链接来请求网页,因此我们需要确定项目需要哪些URL。主页的URL最重要,它是用户用来访问项目的基础URL。当前,基础URL(http://localhost:8000/)返回默认的Django网站,让我们知道正确地建立了项目。我们将修改这一点,将这个基础URL映射到“学习笔记”的主页。
打开项目主文件夹learning_log中的文件urls.py,你将看到如下代码:

"""learning_log URL ConfigurationThe `urlpatterns` list routes URLs to views. For more information please see:https://docs.djangoproject.com/en/2.0/topics/http/urls/
Examples:
Function views1. Add an import:  from my_app import views2. Add a URL to urlpatterns:  path('', views.home, name='home')
Class-based views1. Add an import:  from other_app.views import Home2. Add a URL to urlpatterns:  path('', Home.as_view(), name='home')
Including another URLconf1. Import the include() function: from django.urls import include, path2. Add a URL to urlpatterns:  path('blog/', include('blog.urls'))
"""
from django.contrib import admin
from django.urls import path#变量urlpatterns包含项目中的应用程序的URL
urlpatterns = [#模块admin.site.urls定义了可在管理网站中请求的所有URLpath('admin/', admin.site.urls),
]

添加了一行代码来包含模块learning_logs.urls:
from django.contrib import admin
from django.urls import path, include
urlpatterns = [#模块admin.site.urls定义了可在管理网站中请求的所有URLpath('admin/', admin.site.urls),#实参namespace将learning_logs的URL同项目中的其他URL区分开来path('', include('learning_logs.urls',namespace='learning_logs')),
]
#实参namespace将learning_logs的URL同项目中的其他URL区分开来,默认的urls.py包含在文件夹learning_log中,现在我们需要在文件夹learning_logs中创建另一个urls.py文件:
urls.py
"""定义learning_logs的URL模式"""
from django.urls import path
#从当前的urls.py模块所在的文件夹中导入视图
from . import views
#变量urlpatterns是一个列表,包含可在应用程序learning_logs中请求的网页
app_name = 'learning_logs'
urlpatterns = [#主页#第一个是正则表达式,r让Python将接下来的字符串视为原始字符串,引号正则表达式始于和终于何处#第二个实参指定了要调用的视图函数#第三个实参将这个URL模式的名称指定为indexpath(r'',views.index,name='index'),]

编写视图

视图函数接受请求中的信息,准备好生成网页所需的数据,再将这些数据发送给浏览器——这通常是使用定义了网页是什么样的模板实现的。
learning_logs中的文件views.py是你执行命令python manage.py startapp 时自动生成的,当前其内容如下:

views.py

from django.shortcuts import render#根据视图提供的数据渲染响应# 在这里创建视图
为主页编写视图
from django.shortcuts import render# Create your views here.
def index(request):"""学习笔记的主页"""return render(request,'learning_logs/index.html')

URL请求与我们刚才定义的模式匹配时,Django将在文件views.py中查找函数index() ,再将请求对象传递给这个视图函数函数,这里,我们不需要处理任何数据,因此这个函数只包含调用render() 的代码,render() 提供了两个实参:原始请求对象以及一个可用于创建网页的模板。

编写模板

    模板定义了网页的结构。模板指定了网页是什么样的,而每当网页被请求时,Django将填入相关的数据。模板让你能够访问视图提供的任何数据。我们的主页视图没有提供任何数据,因此相应的模板非常简单。
    在文件夹learning_logs中新建一个templates文件夹。在文件夹templates中,再新建一个文件夹learning_logs文件夹。建立了Django能够明确解读的结构,即便项目很大,包含很多应用程序亦如此。在最里面的文件夹learning_logs中,新建一个文件,并将其命名为index.html,再在这个文件中编写如下代码:

<p>Learning Log</p><p>Learning Log helps you keep track of your learning, for any topic you're
learning about.</p>

创建其他网页

创建两个显示数据的网页,其中一个列出所有的主题,另一个显示特定主题的所有条目。对于每个网页,我们都将指定URL模式,编写一个视图函数,并编写一个模板。

模板继承

编写一个包含通用元素的父模板,并让每个网页都继承这个模板。

父模板

创建一个名为base.html的模板,并将其存储在index.html所在的目录中


未完!!!!!

这篇关于Python练习Django项目——学习笔记的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1086644

相关文章

51单片机学习记录———定时器

文章目录 前言一、定时器介绍二、STC89C52定时器资源三、定时器框图四、定时器模式五、定时器相关寄存器六、定时器练习 前言 一个学习嵌入式的小白~ 有问题评论区或私信指出~ 提示:以下是本篇文章正文内容,下面案例可供参考 一、定时器介绍 定时器介绍:51单片机的定时器属于单片机的内部资源,其电路的连接和运转均在单片机内部完成。 定时器作用: 1.用于计数系统,可

问题:第一次世界大战的起止时间是 #其他#学习方法#微信

问题:第一次世界大战的起止时间是 A.1913 ~1918 年 B.1913 ~1918 年 C.1914 ~1918 年 D.1914 ~1919 年 参考答案如图所示

[word] word设置上标快捷键 #学习方法#其他#媒体

word设置上标快捷键 办公中,少不了使用word,这个是大家必备的软件,今天给大家分享word设置上标快捷键,希望在办公中能帮到您! 1、添加上标 在录入一些公式,或者是化学产品时,需要添加上标内容,按下快捷键Ctrl+shift++就能将需要的内容设置为上标符号。 word设置上标快捷键的方法就是以上内容了,需要的小伙伴都可以试一试呢!

Tolua使用笔记(上)

目录   1.准备工作 2.运行例子 01.HelloWorld:在C#中,创建和销毁Lua虚拟机 和 简单调用。 02.ScriptsFromFile:在C#中,对一个lua文件的执行调用 03.CallLuaFunction:在C#中,对lua函数的操作 04.AccessingLuaVariables:在C#中,对lua变量的操作 05.LuaCoroutine:在Lua中,

AssetBundle学习笔记

AssetBundle是unity自定义的资源格式,通过调用引擎的资源打包接口对资源进行打包成.assetbundle格式的资源包。本文介绍了AssetBundle的生成,使用,加载,卸载以及Unity资源更新的一个基本步骤。 目录 1.定义: 2.AssetBundle的生成: 1)设置AssetBundle包的属性——通过编辑器界面 补充:分组策略 2)调用引擎接口API

Javascript高级程序设计(第四版)--学习记录之变量、内存

原始值与引用值 原始值:简单的数据即基础数据类型,按值访问。 引用值:由多个值构成的对象即复杂数据类型,按引用访问。 动态属性 对于引用值而言,可以随时添加、修改和删除其属性和方法。 let person = new Object();person.name = 'Jason';person.age = 42;console.log(person.name,person.age);//'J

大学湖北中医药大学法医学试题及答案,分享几个实用搜题和学习工具 #微信#学习方法#职场发展

今天分享拥有拍照搜题、文字搜题、语音搜题、多重搜题等搜题模式,可以快速查找问题解析,加深对题目答案的理解。 1.快练题 这是一个网站 找题的网站海量题库,在线搜题,快速刷题~为您提供百万优质题库,直接搜索题库名称,支持多种刷题模式:顺序练习、语音听题、本地搜题、顺序阅读、模拟考试、组卷考试、赶快下载吧! 2.彩虹搜题 这是个老公众号了 支持手写输入,截图搜题,详细步骤,解题必备

用Microsoft.Extensions.Hosting 管理WPF项目.

首先引入必要的包: <ItemGroup><PackageReference Include="CommunityToolkit.Mvvm" Version="8.2.2" /><PackageReference Include="Microsoft.Extensions.Hosting" Version="8.0.0" /><PackageReference Include="Serilog

eclipse运行springboot项目,找不到主类

解决办法尝试了很多种,下载sts压缩包行不通。最后解决办法如图: help--->Eclipse Marketplace--->Popular--->找到Spring Tools 3---->Installed。

《offer来了》第二章学习笔记

1.集合 Java四种集合:List、Queue、Set和Map 1.1.List:可重复 有序的Collection ArrayList: 基于数组实现,增删慢,查询快,线程不安全 Vector: 基于数组实现,增删慢,查询快,线程安全 LinkedList: 基于双向链实现,增删快,查询慢,线程不安全 1.2.Queue:队列 ArrayBlockingQueue: