Django框架学习笔记(一)

命令行创建项目:

pip install django
django-admin startproject mysite
cd mysite
python manage.py runserver 127.0.0.1:8080

默认情况下是访问8080端口

在浏览器中输入以上网址看到如下界面说明创建成功:

pycharm创建

用pycharm创建项目就比较简单了,要保证系统安装了python的环境


Django的程序目录

settings.py-------------------Django配置文件
urls.py------------------------路由系统:url与函数的对应关系
wsgi.py-----------------------用于定义Django用什么socket实现,默认使用wsgiref,生产环境下会用到uwsgi
manage.py------------------对当前Django程序所有操作可以基于python manage.py runserver manage.py

第一个Django请求

启动项目之后在浏览器中输入:http://127.0.0.1:8080/login 就可以看到通过HttpResponse返回的信息,需要注意的是:HttpResponse里面填的都是字符串,

  • 当我们填写的是<input type="text" />时,会返回一个文本输入框,
  • 当我们在templates下新建一个login.html文件填写到HttpResponse中时,启动项目返回的是字符串login.html,而不是解析出的内容

可以这样修改:

render的第一个参数必须是request,自动找到模板路径下的login.html文件,读取内容并返回给用户

模板的路径可以修改,但以下两个地方要保持一致:

在写静态文件(如html)时,通常需要引入css或者js文件,我们将其放在一个文件夹sta(名称可自定义)中,需要注意的是,这个文件夹的路径需要在settings.py中配置,否则引入sta中的文件时不会生效。

项目运行时,会通过STATIC_URL来找到我们自定义的文件夹sta,在login.html中引入sta下的common.css时,需要用STATIC_URL的static作前缀<link rel="stylesheet" href="/static/common.css"/>,而不是sta,所以通常情况下我们会将文件夹直接命名为static

STATICFILES_DIRS配置路径时,后面的一定要加都要逗号,因为它是一个元组类型的数据
sta的名称可以自定义
BASE_DIR表示项目的路径

Django创建程序步骤

  1. 创建project
  2. 配置:
    • 模板路径:templates
    • 静态文件路径:STATICFILES_DIRS
  3. 额外配置:注释掉settings.py中这一句
  4. url的对应关系:urlpatterns
    如:
    /login/ --->login
	def login(request):
		request.method
	   	request.GET --->请求头中的url,类似:/login/?name=wwy&pwd=123
	   	request.POST--->请求体
			
		return HttpResponse(...)
		return render(request, 'login.html',{......})
		return redirect('要跳转的网址')

案例:用户登录

login.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>登录</title>
    <link rel="stylesheet" href="/static/common.css"/>
</head>
<body>
<h1>用户登录</h1>
<form action="/login/" method="post">
    <input type="text" name="username"/>
    <input type="password" name="password"/>
    <input type="submit" value="登录"/>
    {{ msg }}
</form>
</body>
</html>

urls.py

from django.contrib import admin
from django.urls import path

from django.shortcuts import HttpResponse, render, redirect


def login(request):
    """
    处理用户请求,并返回内容
    :param request: 用户请求相关的所有信息(对象)
    :return:
    """
    # return HttpResponse("你好,种花家的鄂兔")
    # return HttpResponse("login.html")
    # 自动找到模板路径下的login.html文件,读取内容并返回给用户
    if request.method == 'GET':
        return render(request, 'login.html')
    else:
        username = request.POST['username']
        password = request.POST['password']
        if username == 'wwy' and password == '123456':
            return redirect('http://www.baidu.com')
        else:
            return render(request, 'login.html',
                           {'msg': '用户名或密码错误'})

urlpatterns = [
    path('admin/', admin.site.urls),
    path('login/', login),
]

启动项目之后,浏览器访问:http://127.0.0.1:8080/login ,会匹配到urlpatterns中path(‘login/’,login),然后执行login函数,此时的请求属于GET请求,所以会通过render函数跳转到login.html,在login.html中提交表单信息之后,会触发post请求,通过action执行相应的函数(这里我们还是执行login函数),表单的信息会通过字典形式传过来,通过request.POST获取到用户填写的信息,填写正确会通过redirect重定向到某个网址,否则还是render到login.html,通过向login.html返回错误信息msg,login.html页面通过{{msg}}即可接收。

补充:
模板语言的显示:


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值