小生博客:http://xsboke.blog.51cto.com
<代码> - - - - - - -谢谢您的参考,如有疑问,欢迎交流代码><人力资源/>
一、静态文件
二,路由映射
三,视图函数
四,模板(模板)基础
-
<李>
关于静态文件
1.1首先需要在配置文件设置。py中指定静态目录
STATICFILES_DIRS=(
os.path.join (BASE_DIR,“statics"),
)
1.2然后在html中使用django模板语言指定静态文件
{%从staticfiles加载静态%}
& lt;链接https://www.yisu.com/zixun/href="{%静态”指数。css“%}”rel="样式表" type=" text/css "/>
& lt;脚本src=https://www.yisu.com/zixun/眥%静态”指数。js " %} "> 脚本>
1.3也可以这样写
<代码> #指定前缀 STATIC_URL='//' STATICFILES_DIRS=( os.path.join (BASE_DIR“静态”), ) & lt;链接的href=" https://www.yisu.com/a/css/index.css " rel="样式表" type=" text/css "/比; & lt;脚本src=" https://www.yisu.com/a/js/index.js "祝辞& lt;/script> 代码>李> <李>
路由映射
Django URL是一个URL和视图函数的映射表
urlpattern=[
路径(admin/, admin.site.urls),
)
urlpattern=[
url(正则表达式,观点视图函数,参数,别名)
]
参数:可选的要传递给视图函数的默认参数
别名:一个可选的名字参数,用于前端
注意:要想使用url去配置路径需要加载模块:django.conf。url输入url
2.1无名分组
url (r ' ^文章/[0 - 9]{4}/([0 - 9]{4})/([0 - 9]+)/$’,views.special_case_2018),
^文章:以文章开头匹配的文章
/:目录符号
[0 - 9]{4}:包含一个4位的数,每一位的范围是0 - 9
():加括号的意思是传入一个参数
这时候,观点。py需要这样写(使用HttpResponsen需要导入这个模块):
def special_case_2018(点播,变量)#可以传入多个变量,用逗号分隔
返回HttpResposen(变量+“year") #将用户输入的内容返回到浏览器上
2.2命名分组
2.2.1讲解进口re
<代码> ret=re.search(’(?术;id> \ d{3})/(?术;name> \ w {3})”,“weeew34ttt123/已坏”) ? P:固定格式,意思是这种分组是有名字的 & lt; id>:匹配的名字就是id,可以看做是一个变量,是匹配内容的变量 \ d{3}:是匹配的内容,三个数字。 {3}\ w:就是3个字母 “weeew34ttt123/已坏”:这段字符串就是被匹配的内容,最终结果会匹配出“123/已坏” 打印(ret.group()):取出所有匹配到的内容 print (ret.group (id)):只取出名字为的id的内容 print (ret.group('名称')):只取出名字为的名字的内容代码>2.2.2
url格式
urlpattern=[
url (r ' ^文章/(?术;year>[0 - 9]{4})/(?术;month> [0 - 9] {4})/$’, views.year_archive),
)
<代码> views.py配置 def year_archive(点播,年、月):#使用命名分组,形参必须是url中定义的名字,顺序可以不同 返回HttpResposen(年+ " y " +月+“m”) 代码>
2.3参数三
urlpattern=[url (r 'index
', views.index {“name":“大山”}),
)
<代码> def指数(点播、名称): 返回HttpResposen(名字)#返回“大山” #如果在使用参数的同时,使用了命名分组,两边的名字如果一样,那么参数会覆盖命名分组代码>
2.4参数四
urlpattern=[url (r 'index
', views.index, name=癲ashan"), #的名字是固定的写法,名字就是别名
) # name=癲ashang",代替的就是指数,就是指数的别名
<代码>这时候,前端可以通过别名去找到视图函数 & lt;表单动作={% url“大山”%}方法=皃ost”比; & lt;输入类型=拔谋尽钡拿?皍sernmae”比; & lt;输入类型=" passwrod " name=皃asswd”比; & lt;输入类型=疤峤弧钡拿?疤峤弧北? & lt; form> 代码>
2.5 url映射分发(包括)
当有上万页面时,你就得在urls . py中写上万条url匹配,造成数据量大,容易写重,容易造成结藕
<代码>解决方法:在每个应用下创建一个urls . py,全局的urls . py只做一个映射 2.5.1全局urls . py 从django.conf。url输入url,包括 从浏览器名称导入视图 urlpattern=[ url (r ' ^浏览器名称”,包括(appname.urls)), ] 2.5.2应用的urls . py 从django.conf。url输入url,包括 urlpattern=[ url (r 'page1/page1.1 views.page1) # page1是紧跟浏览器名称的内容 url (r 'page2 views.page2), )Django基础1:静态文件,路由,视图和模板