命令行创建项目
django-admin startproject [项目名称]
进入项目路径,创建app
python manage.py startapp [app名称]
运行项目命令:
python manage.py runserver
python manage.py runserver [指定端口号]
URL传参的两种方式:
方式一:在url.py 里面直接定义要调用的方法
def aa(requesst):
return HttpResponse('aa')
urlpatterns = [
path('admin/', admin.site.urls),
path('',aa), #‘’表示直接使用。
path('idis',res_this_id),
path('idname/<int:id_name>',res_this_id2)
]
方式二:在其他views.py界面写入,然后调用。
①views.py 代码,调用时直接加后缀参数
def res_this_id(request):
id = request.GET.get('id')
return HttpResponse('返回id是{}'.format(id))
调用时可以直接使用? 添加后缀参数。
②views.py 代码,设置后缀的类型,不对时直接报错。 path('idname/<int:id_name>',res_this_id2)
设置必须是int类型的参数。
from django.shortcuts import render,HttpResponse
def res_this_id2(request,id_name):
# id = request.GET.get('id')
return HttpResponse('返回id是{}'.format(id_name))
后边跟的类型可以统计为:
str: 默认的转换器,非空字符串类型。但是不能包含斜杠。
int:匹配0或者任意的正数的整形。
slug: 由英文的横杠- 或者下划线_ 拼接数字和字母而成的字符串
uuid:匹配uuid字符串。
path:匹配非空的英文字符串,可以包含斜杠/
路由模块化
在我们的项目中,不可能只有一个app,如果把所有的app的views中的视图都放在urls.py中进行映射,肯定会让代码显得非常乱。因此django给我们提供了一个方法,可以在app内部包含自己的url匹配规则,而在项目的urls.py中再统一包含这个app的urls。使用这个技术需要借助include函数。
一开始的url 使用include 引入movies模块的方法:
from django.contrib import admin
from django.urls import path,include
from book.views import *
urlpatterns = [
path('admin/', admin.site.urls),
path('movies/',include("movies.urls")),
]
movies 模块创建一个urls :
from django.urls import path
from . import views
urlpatterns = [
path('set_name/<str:name>',views.get_name),
]
使用时直接模块名称后接上使用的方法名称: