django视图和url配置为啥没有view.pyc
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了django视图和url配置为啥没有view.pyc相关的知识,希望对你有一定的参考价值。
参考技术A 其中funnytest是其中一个app,funnytest 目录下设置了一个Urls, 内容为: --- from django.conf.urls import patterns, include, url from views impor2.Pycharm + Django + Python进行WEB路由配置
一、普通路由配置
1.利用PyCharm创建工程名为mysite的Django项目,在mysite文件上新建views.py视图文件,如下图示:
2.在urls.py文件中导入view.py视图文件
from . import views
3.在urls.py文件中添加新的路由,如下图示:
urlpatterns = [
path('admin/', admin.site.urls),
# 新添加路由
# http://127.0.0.1:8000/index
path('index', views.viewTest),
# http://127.0.0.1:8000/
path('', views.viewMainPage),
# http://127.0.0.1:8000/page/1
path('page/1', views.viewPage1),
]
4.在views.py视图文件中添加以下代码:
from django.http import HttpResponse
def viewTest(request):
return HttpResponse('Hello Django')
def viewMainPage(request):
html = """
<h4>这是我的网站首页</h4>
<a href="http://www.datutusuibi.com/" target="_blank">大土土随笔</a>
"""
return HttpResponse(html)
def viewPage1(request):
html = "这是编号为1的页面"
return HttpResponse(html)
5.编译运行下,在浏览器地址栏输入http://127.0.0.1:8000/index
,效果如下:
在浏览器地址栏输入http://127.0.0.1:8000/page/1
,效果如下:
在浏览器地址栏输入http://127.0.0.1:8000/
,效果如下:
单击衔接,可以跳转到我的个人博客
二、使用path转换器进行路由配置
path转换器:
1).语法:<转换器类型:自定义名>
2).作用:若转换类型匹配到对应类型的数据,则将数据按照关键字传参的方式传递给视图函数。
3).例子:path('page/<int:num>',views.xxx)
【常用path转换器类型】
1.在urls.py文件中添加新的路由,如下图示:
urlpatterns = [
path('admin/', admin.site.urls),
# 新添加的路由
# http://127.0.0.1:8000/page/整数 其中整数取值2-100
path('page/<int:num>', views.viewPageNum),
# http://127.0.0.1:8000/整数/操作符/整数
path('<int:num1>/<str:op>/<int:num2>', views.viewCal),
]
2.在views.py视图文件中添加以下代码:
def viewPageNum(request, num):
html = f"这是编号为num的页面!"
return HttpResponse(html)
def viewCal(request, num1, op, num2):
if op not in ['add', 'sub']:
return HttpResponse("你的操作符输入错误!")
if op == 'add':
result = num1 + num2
else:
result = num1 - num2
html = f"计算结果为result"
return HttpResponse(html)
3.编译运行下,在浏览器地址栏输入http://127.0.0.1:8000/page/80
,效果如下:
4.编译运行下,在浏览器地址栏输入http://127.0.0.1:8000/100/add/200
,效果如下:
三、使用re_path转换器进行路由配置
re_path转换器:
1).在url的匹配过程中可以使用正则表达式进行精准匹配
2).语法:re_path(reg,view,name=xxx)
正则表达式为命名分组模式(?P<name>pattern)
匹配提取参数后用关键字传参方式传递给视图函数。
3).样例:
可匹配http://127.0.0.1:8000/30/add/60
不可匹配http://127.0.0.1:8000/300/add/600
1.在urls.py文件中添加新的路由,如下图示:
from django.contrib import admin
from django.urls import path, re_path
from . import views
urlpatterns = [
path('admin/', admin.site.urls),
# http://127.0.0.1:8000/整数/操作符/整数
re_path(r'^(?P<num1>\\d1,2)/(?P<op>\\w+)/(?P<num2>\\d1,2)$', views.viewCal2),
]
2.在views.py视图文件中添加以下代码:
from django.http import HttpResponse
def viewCal2(request, num1, op, num2):
if op not in ['add', 'sub']:
return HttpResponse("你的操作符输入错误!")
if op == 'add':
result = int(num1) + int(num2)
else:
result = int(num1) - int(num2)
html = f"计算结果为result"
return HttpResponse(html)
3.编译运行下,在浏览器地址栏输入http://127.0.0.1:8000/30/add/60
,效果如下:
如果本文对您有所帮助,请关注微信公众号“捷创源科技”!
以上是关于django视图和url配置为啥没有view.pyc的主要内容,如果未能解决你的问题,请参考以下文章
2.Pycharm + Django + Python进行WEB路由配置
2.Pycharm + Django + Python进行WEB路由配置