首先得明确一点,django这个框架,各版本并不是向下兼容的,尤其是1和2,差别非常大,小版本也有变化,也并非完全兼容,只有第三位才是叠加的版本号。所以选用版本号,对使用django来说很重要,一般学习的话,我们都是学习最新的版本,但有一个得注意一下,1.1和2.2是长期更新版本,其他版本基本都是短期版本,我直接选用的就是最新版本。所以我下面说的某些特性只有2+的版本才会有。
1.每一个url都是对应唯一的目录
2.创建应用的指令:python manage.py startapp app_name
3.正则匹配使用re_path(),'^article/(?P<year>[0-9]{4})/$',其中^为开始,$为结束,?P<varname>获取变量,[0-9]——字符的范围,{4}字符数量
4.通过name可以给url取名
5.通过namespace可以给url定义命名空间,是和include()方法结合使用的
6.include()方法类似于拼接,因为一个项目不可能只有一个应用,如果都放在一起,就显得太过冗余。所以需要创建不同的应用。而include()方法就是用于拼接子应用的。
7.各应用需要对应用进行命名,变量为app_name(这一点很重要,如果不对应用进行命名的话,很多方法都会报withou providing an app_name这个错误)
代码示例如下:
from django.contrib import admin
from django.urls import path, re_path, include
from projectdemo import views
urlpatterns = [
path('admin/', admin.site.urls),
# 使用正则匹配,需要使用re_path()这个方法(django2.0+开始使用这个方法来做正则匹配)
re_path('^index/$', views.index, name='testcount'),
re_path('^article/(?P<year>[0-9]{4})/$', views.article,name='testart'),
# include类似于拼接
path('test/', include('accout.urls',namespace='test')),
]
print_r('点个赞吧');
var_dump('点个赞吧');
NSLog(@"点个赞吧!")
System.out.println("点个赞吧!");
console.log("点个赞吧!");
print("点个赞吧!");
printf("点个赞吧!\n");
cout << "点个赞吧!" << endl;
Console.WriteLine("点个赞吧!");
fmt.Println("点个赞吧!")
Response.Write("点个赞吧");
alert(’点个赞吧’)