Django入门

1、项目同名文件夹python/python
  • _init_ : python包的初始化文件
  • wsgi.py : WEB服务网管的配置文件 - Django正式启动时需要用到
  • urls.py : 项目的主路由配置 - HTTP请求进入Django时,优先调用该文件
  • settings.py : 项目的配置文件 - 包含项目启动时需要的配置
2、settings.py
包含Django项目启动的所有配置项
配置项格式: BASE_DIR = 'xxx'
# 此文件所在的父文件夹的父文件夹,得出的是项目的绝对路径
BASE_DIR = Path(__file__).resolve().parent.parent

# 检测代码改动后,立刻重启服务
DEBUG = True

# 请求头Hosts ,访问的域名必须为允许的Hosts才能访问
ALLOWED_HOSTS = []
3、URL和视图函数
ROOT_URLCONF = 'python.urls'指定了主路由配置列表urlpatterns的文件位置

# 这里存放url和对应的视图函数
urlpatterns = [
    path('admin/', admin.site.urls),
]

视图是用于接受浏览器请求并通过HttpResponse对象返回响应的函数


e.g
urlpatterns = [
    path('admin/', admin.site.urls),
    path('page/2003/', views.page_2003)
]

# views.py
from django.http import HttpResponse

def page_2003(request):
    html = "<h1>这是第一个页面</h1>"
    return HttpResponse(html)
    
    
# path转换器,page这个参数会按照关键字传入views_xxx函数里
path('page/<int:page>', views.xxx)
# 正则, /一位或两位整数/字符串/一位或两位整数,格式(?P<参数>\正则表达式)
re_path(r'^(?P<x>\d{1,2})/(?P<op>\w+)/(?P<y>\d{1,2})$', view.xxxx)

4、请求和响应
# get 和 post 请求

# views.py
from django.http import HttpResponse

post_web = '''
<form method="POST" action="/page_2003">
    username:<input type="text" name="username">
    <input type="submit" value="submit">
</form>
'''


def page_2003(request):
    if request.method == 'GET':
        print(request.GET['a'])
        return HttpResponse(post_web)
    elif request.method == 'POST':
        print(request.POST['username'])
    return HttpResponse('这是响应')

# urls.py
from django.contrib import admin
from django.urls import path
from . import views

urlpatterns = [
    path('admin/', admin.site.urls),
    path('page_2003', views.page_2003)
]
5、模板加载
from django.template import loader
# 1、通过loader加载模板
t = loader.get_template('模板文件名')
# 2、将t转换成HTML字符串
html = t.render(字典数据)
# 3、用响应对象将转换的字符串内容返回给浏览器
return HttpResponse(html)

from django.shortcuts import render
return render(request, '模板文件名', '字典变量')
# 字典变量在html中可以使用{{}}模板来显示
{% %} 控制标签
6、模板继承
# base.html	父模板
{% block mytitle %}
...
{% endblock %}

# sports.html	子模板
{% extends 'base.html' %}	# 引用父模板

{% block mytitle %}
# 里面可以修改父模板里的内容
{% endblock %}
7、url反向解析
URL存在的地方
1、模板HTML中
<a href="/login" ></a>
<form action="/login" method="POST"> <form>
2、视图函数中
HttpResponseRedirect('/login')


反向解析
# test_url.html
<a href="{% url 'tr' '100'%}" >URL反向解析</a>
# views.py
def test_url(request, age):
	return HttpResponse('<h1>haha</h1>')

# 302跳转
def test_url_result(request, age):
from django.urls import reverse
url = reserve('tr')
return HttpResponseRedirect(url)

# settings.py
path('/test_url_result/<int:age>', views.test_url(), name='tr')
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

horizonTel

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值