Django学习(一)

Django起源:

项目创建:

项目执行(测试开发阶段):

项目结束:

结构:

db.sqlite3:数据库,一般不用,会替换成我们自己的数据库

manage.py

项目同名目录:

settings.py
settings中的配置详解:

注意:添加自定义配置时名称必须大写

django处理url的过程

视图函数

路由配置

path转换器

re_path

Django中的请求

request下的函数

django响应对象:

代码展示:

urls.py

python 复制代码
from django.contrib import admin
from django.urls import path
from . import views
from django.urls import re_path

urlpatterns = [
    path('admin/', admin.site.urls),
    path('page/2004/', views.page_2003_view),
    path('', views.index_view),
    path('page/1', views.page_1_view),
    path('page/2', views.page_2_view),
    path('page/<int:pg>', views.page_view),
    # 正则表达式匹配
    # x为数字(1位和两位),op为字母,y为数字(1位和两位),$表示结束
    re_path(r'^(?P<x>\d{1,2})/(?P<op>\w+)/(?P<y>/d{1,2})$', views.cal2_view),
    path('<int:n>/<str:op>/<int:m>', views.cal_view),
    re_path(r'^birthday/(?P<b>\d{4})/(?P<c>\d{1,2})/(?P<d>\d{1,2})$', views.date_view),
    path('aa/', views.test_request)
]

views.py

python 复制代码
from django.http import HttpResponse


def page_2003_view(request):
    html = "<h1>这是一个页面</h1>"
    return HttpResponse(html)


def index_view(request):
    html = "<h1>这是一个首页</h1>"
    return HttpResponse(html)


def page_1_view(request):
    html = "<h1>这是编号为1的页面</h1>"
    return HttpResponse(html)


def page_2_view(request):
    html = "<h1>这是编号为2的页面</h1>"
    return HttpResponse(html)


def page_view(request, pg):
    html = f"<h1>这是编号为{pg}的页面</h1>"
    return HttpResponse(html)


def cal_view(request, n, op, m):
    if op not in ['add', 'sub', 'mul']:
        return HttpResponse('Your op is wrong')
    result = 0
    if op == 'add':
        result = n + m
    elif op == 'sub':
        result = n - m
    elif op == 'mul':
        result = n * m
    return HttpResponse(f'结果为{result}')


def cal2_view(request, x, op, y):
    if op not in ['add', 'sub', 'mul']:
        return HttpResponse('Your op is wrong')
    result = 0
    if op == 'add':
        result = x + y
    elif op == 'sub':
        result = x - y
    elif op == 'mul':
        result = x * y
    return HttpResponse(f'结果shi{result}')


def date_view(request, a, b, c, d):
    html = f"<h1>生日为{b}-{c}-{d}</h1>"
    return HttpResponse(html)


def test_request(request):
    print("url字符集:", request.path_info)
    print("method is", request.method)
    print("querystring is", request.GET)
    print(request.get_full_path())
    return HttpResponse("html")

请求过程:

服务起来之后,输入urls.py中配置的连接,就会跳转到链接对应的在views.py文件中编写的视图对象

相关推荐
小淮AI3 小时前
从“刷题”到“追问”:AI课堂正在重塑哪些学习旧习惯?
人工智能·学习
阿童木写作3 小时前
跨境电商图片翻译工具推荐:批量图片翻译+视频字幕翻译+智能抠图
python·macos·音视频·xcode
cui_ruicheng3 小时前
LangChain 应用开发(十四):Agent 上下文与记忆机制
服务器·人工智能·python·langchain
circuitsosk4 小时前
任务规划器的三种范式对比:ReAct、Plan-and-Execute 与 Tree-of-Thought 在真实业务中的取舍
前端·javascript·python·react.js·llm·ai agent
shehuiyuelaiyuehao4 小时前
算法31,前缀和,可被k整除的子数组
数据结构·python·算法
wixzjsh4 小时前
TCP通信与HTTP协议学习笔记:粘包、三次握手、四次挥手与C/S、B/S模型
学习·tcp/ip·http
ZhiMuZhiLing4 小时前
拓客软件学习成本实测方法论:从注册到出第一批名单要多久
学习·流量运营·用户运营
宸津-代码粉碎机4 小时前
AI攻防战升级!基于Spring AI构建Java应用自动免疫安全体系
java·大数据·开发语言·人工智能·python·安全·spring
测试19985 小时前
如何用appium搭建Android自动化测试框架?
自动化测试·软件测试·python·测试工具·职场和发展·appium·测试用例
程序员大雄学编程5 小时前
微积分46. 无穷级数四大核心性质:从理论到实践的全方位解析
python·学习·微积分·学习工具