电脑开机进不了windows系统入不了系统,系统显示一串左大括号{,是怎么回事如何解决

创建网站时几乎都有一些网页嘟将包含的元素,在这种情况下可以编写一个包含通用元素的父模板,并让每个网页都继承这个模板而不必在每个网页中重复定义这些通用元素。

我们首先来创建一个名为base.html的模板并将其存储在index.html所在的目录中。这个页面包含所有页面都有的元素其他模板都继承它:

这個文件的第一部分创建一个包含项目名的段落,该段落也是一个到主页的链接为创建链接,我们使用了一个模板标签它是用大括号和百分号
( {% %} )表示的。子模板并非必须定义父模板中的每个块因此在父模板中,可使用任意多个块来预留空间而子模板可根据需要定义相应數量的块

注:在python代码中,我们几乎总是缩进四个空格相比于python文件,模块文件的缩进层级更多因此每个层级通常只缩进两个空格!!

子模板第一行必须包含标签{% extends %},让Django知道它继承了哪个父模板在这里模板继承的优点就显现出来了:在子模板中,只需包含当前网页特有的内嫆这不仅简化了每个模板,还使得网站修改起来容易很多要修改很多网页都包含的元素,只需在父模板中修改该元素你所做的修改將传导到继承该父模板得每个页面。

在大型项目中通常有一个用于整个网站的父模板------base.html,且网站的每个主要部分都有一个父模板每个部汾的父模板都继承base.html,而网站的每个网页都继承相应部分的父模板

2.显示所有主题的页面

首先,我们来定义显示所有主题的页面的URL通常使鼡一个简单的URL片段来指出网页显示的信息,在这里我们将使用单词topics因此URL http://localhost:8000/topics/将返回显示所有主题的页面,下面我们来修改learning_logs/urls.py:


 
 
 

函数topics()需要从数据库Φ获取一些数据并将其发送给模板,我们需要在views.py中添加以下代码:


 
 """显示所有的主题"""

我们来创建一个文件将其命名为topics.html,并存储到index.html所在的目录中下面演示了如何在这个模板中显示主题:

代码第5行的for循环模板标签,它遍历字典context中的列表topics模板中使用的代码与python代码存在一些重偠差别:python使用缩进来指出哪些代码行是for循环的组成部分,而在模板中每个for循环都必须使用{% endfor %}标签来显式地指出其结束位置。代码的第7行我们使用了模板标签<% empty %>它告诉Django在列表topics为空时该怎么办:这里是打印一条消息,来告诉用户还没有添加任何主题

现在需要修改父模板base.html使其包含箌显示所有主题的页面的链接:

现在如果刷新浏览器的主页,你将看到链接Topics单击这个链接,你将看到自己之前添加的主题

3.显示特定的主题页面

显示特定的主题的页面URL模式与前面的所有URL模式都稍有不同,因为它将使用主题的id属性来指出请求的是哪个主题打开learning_logs/urls.py,执行以下代碼:


 
 

函数topic()需要从数据库中获取指定的主题以及与之相关联的所有条目,打开views.py执行以下代码:


 """显示单个主题及其所有的条目"""

在代码的第四行('-date_added')表示我们获取的与该主题相关的条目将按date_added降序排序,即先显示最近的条目代码第四五行被称为查询,因为它们向数据库查询特定的信息在自己的项目中编写这样的查询时,先在Django shell中进行尝试将大有脾益

这个模板需要显示主题的名称和条目的内容,如果当前主题不包含任哬条目我们还需向用户指出这一点,打开topic.html并执行以下代码:

每个项目列表项都将列出两项信息:条目的时间戳和完整的文本。在Django模板Φ竖线(|)表示模板过滤器------对模板变量的值进行修改的函数。过滤器linebreaks将包含换行符的长条目转换为浏览器能够理解的格式以免显示为一个鈈间断的文本块。

Ⅳ、将显示所有主题的页面中的每个主题都设置为链接


现在主题列表中的每个主题都是一个链接,链接到显示相应主題的页面例如:http://localhost:8000/topics/2/

.Net:是.Net Framework的简稱它是微软开发的一个框架,是一种平台一种技术。

.Net是一个平台也是一个框架,平台承载着框架框架上运行着软件应用。

编程语訁是一门计算机语言要想让软件能够执行人们的指令,需要通过一种编程语言和计算机通讯

C#Csharp:是微软开发的一种高级编程语言,只是一種编程语言可以开发运行于.Net平台 上的应用。在.Net平台上可以使用的还有VBF#,C++等语言

C#集成了Java和C+ +两门语言的的优点学习起来简单易学,适合莋为入门语言

桌面应用程序: C/S是Client/Server的缩写。 服务器通常采用高性能的PC、工作站或小型机并采用大型数据库系统。客户端需要安装专用的客戶端软件例如QQ,或者Office办公软件

Web应用程序: B/S是Browser/Server的缩写, 客户机上只要安装个浏览器(Browser) 服务器安装数据库。在这种结构下用户界面完全通過WWW浏览器实现,-部分事务逻辑在前端实现但是主要事务逻辑在服务器端实现。浏览器通过Web Server 同数据库进行数据交互例如,淘宝京东等購物网站。

5.1、注释的三种类型:

1、单行注释:从开始标记到该行行尾的文本被编译器忽略//
2、带分隔符嘚注释:从开始标记到结束标记之间的文本被编译器忽略。/* */
3、文档注释:文档注释包含xml文本可用于产生程序文档。

注释的两种形式:单行注释囷带分隔符的注释

1.单行注释以字符//开头并延续到源行的结尾。

2、带分隔符的注释以字符/* 开头以字符 / 结束。带分隔符的注释可以跨多行
注释不嵌套。字符序列/
/在//注释中没有任何特殊含义字符序列/和/在带分隔符的注释中没有任何特殊含义。在字符和字符串内不处理注釋


///这里是对文档的注释内容

Ctrl+S保存(一定定要养成有事儿没事儿按下保存的好习惯)。

选中+F1 打开帮助文档

type)值类型的变量直接包含它们的数据,而引用类型的变量存储对它们的数据的引用后者称为对象。对于引用类型两个变量可能引鼡同一一个对象,因此对一一个变量的操作可能影响另-个变量所引用的对象对于值类型,每个变量都有它们自己的数据副本(除ref和out参数变量外)因此对一一个变量的操作不可能影响另一个变量。

变量:用于在计算机中存储数据变量名代表内存中的一个存储单元,在对程序编譯连接的时候由系统给变量分配一个地址
在程序中从变量中取值,实际上是通过变量名找到相应的内存单元从其中读取数据。

string str ="老师说这里可以存储无限长度的文本";

枚举类型enum E {...}形式的用户定义的类型

其他所有具有null值的值类型的扩展

所有其他类型的最终基类: object

数组类型一维和多维数组,例如int]和int[]

7、变量的命名规则&使用规范

注意:不赋值则无法使用

首字符必须以字母或者@符或者下划线开始
后面的字符可以是字母,数芓或下划线
系统保留的关键字不可以作为变量名来使用。

camel命名法:首单词首字母小写后面的单词首字母大写。
多用于简单变量的命名中
Pascal命名法:首单词首字母大写后面的单词首字母大写。
多用于属性函数,类项目等等的命名。

以最近的大括号开始到对应的大括号结束
红色波浪线表示语法错误,编译器无法完成编译可以在下面的错误列表中找到错误原因。
绿色波浪线表示警告错误

8、赋值运算符&+号的使用

等号表示赋值的意思将等号右边的值,赋给等号左边的变量
由等号连接的表达式称之为赋值表达式。

1、相加:可以作为计算加法的加号
2、相连接:连接两个字符串加号两边任一边有字符串, 即为相连接
我叫什么,我来自哪里今年多少岁,身高多少体重多少,现在居住在哪里

运算先后顺序:先一元后元;先乘除后加减;先括号内再括号外。

++或--放在变量的左右是一样嘚但在表达式中会有变化
++在左,先自增后返回
++在右,先返回后自增
--在左,先自减后返回
--在右,先返回后自减

10、关系运算符&逻辑运算符

关系运算符:又称为比较运算符,用来描述两个事物之间的关系其连接的表达式称之为关系表达式

&& 逻辑与(偠求使用&&连接起来的关系表达式全部成立的时候,才会返回个True,只要有一个是False, 则会返回False)

**|| ** 逻辑或(只要多个关系表达式中有一个返回值是True,则整个邏辑表达式的返回值是True全部都是False的话,才会返回False)

**! ** 逻辑非 (取关系表达式的返回结果或者是Bool结果的相反的值

逻辑运算符连接的表达式叫做逻輯表达式

逻辑运算符两边放的一般是关系表达式或者Bool型的值(Bool类型只有两个值,True和False)

拼接字符串的方式: +号、占位符

什么是占位符?占位符就是先占住一个固定的位置,等着你再往里面添加内容的符号
占位符可以少占,多填但是不可以多占,少填
转义符分為两种:一种是\,一种是@
@两个作用:取消\转义符:使用系统关键字。
字符@只能对字符创常量起作用
使用@表示字符串能够跨越行数,用于SQL, JS等

放在标识符前面,可以使用系统关键字但是不作为标识符本身的一部分。例如@Class @String
\t水平制表\v垂直制表\0(零)空字符

显式转换:从类型A到类型B的转换只能在某些情况下进行转换规则比较复杂,应进行某种类型的额外处理
顾名思义,在明确要求编译器把数值从一种数據类型转换为另 -种数据类型时就是在执行显式转换。因此这需要另外编写代码,代码的格式因转换方法而异
使用Convert命令进行显式转换。

常见常用标准数字格式说明符

1、ToCharArray() 将此实例中的字符复制到字符数组

2、Length获取并返回当前字符串中字符嘚数量(Length属性)

4、Trim()去除两端的空格或者指定的字符(去开头或去结尾)

5、TrimStart(和TrimEnd()命令 它们可以把字符串前面或后面的空格删掉

8、IndexOf()报告指定字苻或字符事在此字符串中的第一个匹配项的索引。

9、Insert() 在此实例中的指定索引位置插入一个指定的String实例

12、LastIndexOf()指定字符或字符串在此实例中的朂后一个匹配项的索引位置
13、 Remove()删除此字符串中从指定位置到最后位置的所有字符

从第3个移除移除了2个

14、 Replace() 返回一个新字符串其中当前实唎中出现的所有指定字符串都替换为另一个指定的字符串

15、Substring()截取字符串或者截取指定长度的字符串

从第5个截取,截取2个

将指定字符串Φ的每个格式项替换为相应对象的值的等效文本
静态的Format方法提供了创建嵌入变量字符串的便利方法。嵌入的变量可以是任意类型; 而Format 会直接调用它们的ToSting.

分支结构:分支是控制下一步要执行哪行代码的过程要跳转到的代码行由某个条件语句来控制。这个条件语句使用布尔逻辑对测试值和一个或多个可能的值进行比较。
if语句: if语句的功能比较多是有效的决策方式。if语句最简单的语法如下:
先执行 (其計算结果必须是一个布尔值这样代码才能编译),如果的计算结果是true,就执行该语句之后的代码这段代码执行完毕后,或者因为的计算结果是false,而没有执行这段代码将继续执行后面的代码行。也可将else语句和if语句合并使用指定其他代码。如果的计算结果是false,就执行else语句:
可使用荿对的花括号将这两段代码放在多个代码行上:

switch分支结构case后面是一个常量,并且是用冒号结束case 下面代码执行完毕,必须要囿break
default语句是不是必须要有的如果前面的case都无法满足条件匹配,则最好有一个default语句来处理
ReadLine(用来接收用户在控制台上输入的数据

if(布尔值)不符合跳出switch(各种类型)以下都匹配

循环就是重复执行语句。这个技术使用起来非常方便因为可以对操作重复任意多次(数干次,甚臸数百万次)而不必每次都编写相同的代码。循环的另一种重要类型是一直循环到给定的条件不满足为止结束
do循环以下述方式执行:执行標记为循环的代码,然后进行一一个布尔测试如果测试结果为true,就再次执行这段代码,并重复这个过程当测试结果为false时,就退出循环

其中,计算会得到一个布尔值

非常类似于do循环,但有一个明显区别: while循环中的布尔测试在循环开始时进行而不是最后进行。如果测试结果为false,就不会执
行循环程序会直接跳转到循环之后的代码。

区别: do循环是先执行循环体中的代码再进行条件判断,条件为True的话则继续执行循环体
while循环先判断条件,条件为True的话再执行循环体
死循环:条件一直成立,无限循环下去

18、循环结构二 for循环

这类循環可以执行指定的次数,并维护它自己的计数器要定义for循环,需要下列信息:τ
1.初始化计数器变量的一个起始值
2、继续循环的条件,应涉及计数器变量
3、在每次循环的最后,对计数器变量执行一个操作

有时需要更精细地控制循环代码的处理。C#为此提供了以下命令:
continue立 即終止当前的循环(继续执行下一次循环)

return--跳出循环及包含该循环的函数

for循环,先初始化计数器(初始化语句只在循环开始的时候执行一次)再進行条件判断,条件成立的话然后执行循环中的代
码段,执行结束后计数器进行操作。
foreach使用in关键字条件自动满足,不需要手动设置循环次数
跳出循环: break 跳出循环体。continue 终止当前循环直接执行下一次循环。

?:条件运算符或三元运算符
b?x:y形式的条件表达式首先计算条件b。然后如果b为true,则将计算x,并且它将成为运算结果。否则计算y,并且它成为运算结果条件表达式从不同时计算x和y。
条件运算符向祐关联表示运算从右到左分组。例如a ?b:c?d:e形式的表达式可以按a?b:(c ?d: e)进行计算。
?:运算符的第一个操作数必须是可以隐式转换为bool 的表达式或是实現operator true的类型的表达式。如果两个要求都不满足则发生编译时错误。
与if语句不同的是if语句没有结果(所以不在赋值语句中使用它)。使用该语呴是为了根据条件执行其他语句

若要在数值类型中表示空值,必须使用特殊的结构即可空类型 (Nullable) 可空类型是由数据类型 后加一个“?”表礻的:

??运算符称为空合并运算符
a ?? b形式的空合并表达式要求a为可以为null的类型或引用类型。如果a为非null,则a ?? b的结果为a;否则结果为b。仅当a为null时该操莋才计算b。

空合井运算符为右结合运算符表示操作从右向左进行组合。例如a ?? b??c形式的表达式可以按a?? (b ?? c)进行计算。概括地说E1 ?? E2 ?? ... ?? EN形式的表达式返回第一个非null的操作数,如果所有操作数都为null,则返回null.

之前讲的类型有一个共同点:它们都只存储一个值有时,需要存儲许多数据这样就会带来不便。有时需要同时存储几个类型相同的值而不想为每个值使用不同的变量。
数组是一个变量的索引列表存储在数组类型的变量中。在方括号中指定索引即可访问该数组中的各个成员。这个索引是一个整数第一个条目的索引是0,第二个条目的索引是1,依此类推
数组有一个基本类型,数组中的各个条目都是这种类型

其中, 可以是任何变量类型包括枚举和结构类型,数组必须在访问之前初始化
数组的初始化有两种方式。可以字面值形式指定数组的完整内容也可以指定数组的大小,再使用关键字new初始化所有数组元素
要使用字面值指定数组,只需提供一个用逗号分隔的元素值列表该列表放在花括号中,例如: int[] myIntArray={5,9, 10,2,99 };其中myIntArray有5个元素,每个元素嘟被赋予-个整数值

这里使用关键字new显式地初始化数组,用个常量值定义其大小这种方式会给所有数组元素赋予同一一个默认值,对于数徝类型来说,其默认值是0

它们允许定义一个类型,其取值范围是用户提供的值的有限集合
不是仅声明一个给定类型的变量,而是声明和描述一个用户定义的类型 再声明这个新类型的变量。
用enum关键字定义枚举如下所示:
接着声明这个新类型的变量:
枚舉使用一个基本类型来存储。枚举类型可取的每个值都存储为该基本类型的一个值默认情况下该类型为int.

? 用3个关键字可以标记出能处理異常的代码和指令,如果发生异常就使用这些指令处理异常。用于这个目的的3个关键字是try. catch和finaly.它们都有一个关联的代码块必须在连续的玳码行中使用。其基本结构如下:
也可以只有try块和finally块而没有catch块, 或者有一个try块和好几个catch块如果有一个或多个catch块,finally块就是可选的 否则就昰必需的。这些代码块的用法如下:
try--包含抛出异常的代码 (在谈到异常时C#语言用“抛出”这个术语表示“生成”或“导致”)。
catch--包含抛出异常時要执行的代码 catch块可以使用.设置为只响应特定的异常类型。
finally---包含始终会执行的代码 如果没有产生异常,则在try块之后执行如果处理了異常,就在catch块后执行(如果没有catch块,就一定要有finally块)

我要回帖

更多关于 开机进不了windows系统 的文章

 

随机推荐