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 impor

2.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路由配置

如何限制从 django 网站执行的视图功能?

Django知识点

VSCode:从 JS url(查看 url)到 Django 视图的“转到定义”

为啥 Django 试图打开一个我没有告诉它的 URL?