urls.py内容简介
urlpatterns
urlpatterns = [
path('admin/', admin.site.urls),
]
可以看到urlpatterns是一个列表,里面可以添加路由目录
可以看到django自带admin管理,在项目界面后面加admin就能进入管理界面[http://127.0.0.1:8000/admin/](http://127.0.0.1:8000/admin/)
(只有自己本地能打开)
MVC/MTV流程
第一步从浏览器到达我们的路由器,接着路由器交给views视图函数,或者是控制器controller去解决。
添加views路由
我们在urlpatterns里添加路由条目:
from django.contrib import admin
from django.urls import path
from App import views
urlpatterns = [
path('admin/', admin.site.urls),
path('hello/', views.hello)
]
注意第3行需要我们自行导入App文件夹中的view.py文件
6行引用views,交给views中的hello函数处理
在views.py添加hello函数:
from django.http import HttpResponse
from django.shortcuts import render
# Create your views here.
def hello(request):
return HttpResponse("双击666")
接着我们验证结果
打开浏览器输入http://127.0.0.1:8000/hello/
我们可以看到
总结:实现一个请求
注册一个路由
- urls中:
url:参数
视图函数:对应的是views中的一个函数(函数后面没有括号)
- 去views实现对应的试图函数:
第一个参数是request,函数名可以不是request,但是要是一个request对象
永远记得返回responese响应
- httpresponse返回的内容可以是html标签例如
<h1>哈哈<h1>
也可以是利用os模块调用html文件,但是这些都有点捞,Django是MTV设计模式,所以有专门的T(用户界面设计)
MTV模式中的T(用户UI)
第一种创建模板
在应用文件夹App下创建templates文件夹(文件夹名固定),文件夹里建立html文件
添加url让temlates中html文件部署至网站
添加index路由
urlpatterns = [
path('admin/', admin.site.urls),
path('hello/', views.hello),
path('hehe/',views.hehe),
path('index/',views.index),
]
在views添加index函数
def index(request):
return render(request,'index.html')
在views中去加载渲染模板
1. from django.template import loader template=loader.get_template('xxx')#先把模板加载进来
return render(request,'xxx')
简化版
渲染好处是可以写一些模板语句进html<br />**render是渲染函数,后面有两个参数①request②应用名**<br />注意这样index.html pycharm不会自动补齐,需要手动输入
自动补齐操作如下:
标记新建的templates为模板(因为pycharm不会自动识别文件夹为模板)注意:pycharm专业版才有
将App应用添加到settings.py中
否则Django不会识别App中的index目录,访问时会报错
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'App',
]
这样就能访问index.html
第二种创建模板
新版本在项目目录下已经有了templates模板文件夹,你只需要上传html文件即可
若目录中没有,则需要你手动创建,并且按照第一种创建模板的方式标记文件夹
并且你还需要在settings.py文件中的TEMPLATES中的DIRS中按添加如下内容
'DIRS': [os.path.join(BASE_DIR, 'templates')]
告诉Django templates模板在这里
第一种方法在开发中不常用,在开发中使用的是第二种创建模板方法。
urls优化
一个项目里的views里的函数不宜过多(一个文件打开代码过多,叫上帝文件,因为这个文件啥都能干)
我们可以创建多个项目来分散开来
创建新项目
例如再创建名为two
的项目python manage.py startapp two
创建完一个app之后立马在settings.py文件里面的INSTALLED_APPS注册上
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'App',
'two',
]
分发路由
接着我们可以分发路由
在two项目里新建urls.py
在里面添加
from django.conf.urls import url
from two import views
urlpatterns = [
url('index/',views.index)
]
注意导入的两条语句我们可以不用手动输入,先输入urlpatterns=[]的,然后会出现下图的红色波浪线,我们可以alt+enter利用万能键,快速导入补全。
接着我们要去two下的views下添加index函数,我们可以用万能键快速创建
two/views.py如下:
# Create your views here.
from django.http import HttpResponse
def index(request):
return HttpResponse('老铁双击666')
接着为了让根路由知道我们应用里的子路由,需要在hellodjango里面添加我们的子路由:
注意:根路由是path函数,子路由是url函数
urlpatterns = [
path('admin/', admin.site.urls),
path('hello/', views.hello),
path('hehe/',views.hehe),
path('home/',views.home),
path('two/',include('two.urls'))]
如何访问
我们先从总路由访问two,再访问two中的子路由里的index
这样我们就能成功分发路由并且访问了
总结
template只是response响应的一种
万能键(补全引入框架)
html
ul>li*n ##快速建立n行无序列表
此处评论已关闭