命令行创建项目:

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

默认情况下是访问8080端口

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

pycharm创建

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


Django的程序目录

  • mysite

    • mysite

      • _init_.py
      • settings.py
      • urls.py
      • wsgi.py
    • templates
    • manage.py

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/ --->logindef login(request):request.methodrequest.GET --->请求头中的url,类似:/login/?name=wwy&pwd=123request.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 pathfrom django.shortcuts import HttpResponse, render, redirectdef 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}}即可接收。

补充:
模板语言的显示:


Django框架学习笔记(一)相关推荐

  1. django系统学习笔记

    转自:http://hi.baidu.com/derris/item/7ca6013e330563fede2221ab 2010-02-07 00:12 django系统学习笔记--(1)hello ...

  2. SpringMVC框架--学习笔记(下)

    接上篇:SpirngMVC框架--学习笔记(上):https://blog.csdn.net/a745233700/article/details/81038382 17.全局异常处理: 系统中异常包 ...

  3. SpringMVC框架--学习笔记(上)

    1.SpringMVC入门程序: (1)导入jar包:spring核心jar包.spring-webmvc整合Jar包 (2)配置前端控制器:web.xml文件中 <?xml version=& ...

  4. mybatis框架--学习笔记(下)

    上篇:mybatis框架--学习笔记(上):https://blog.csdn.net/a745233700/article/details/81034021 8.高级映射: (1)一对一查询: ①使 ...

  5. mybatis框架--学习笔记(上)

    使用JDBC操作数据库的问题总结: (1)数据库连接,使用时创建,不使用时立即释放,对数据库进行频繁连接开启和关闭,造成数据库资源浪费,影响数据库性能. 设想:使用数据库连接池管理数据库连接. (2) ...

  6. JavaSE中Map框架学习笔记

    前言:最近几天都在生病,退烧之后身体虚弱.头疼.在床上躺了几天,什么事情都干不了.接下来这段时间,要好好加快进度才好. 前面用了三篇文章的篇幅学习了Collection框架的相关内容,而Map框架相对 ...

  7. python表单提交的两种方式_Flask框架学习笔记之表单基础介绍与表单提交方式

    本文实例讲述了Flask框架学习笔记之表单基础介绍与表单提交方式.分享给大家供大家参考,具体如下: 表单介绍 表单是HTML页面中负责数据采集功能的部件.由表单标签,表单域和表单按钮组成.通过表单,将 ...

  8. Django:学习笔记(2)——创建第一个应用

    Django:学习笔记(2)--创建第一个应用 创建应用 在 Django 中,每一个应用都是一个 Python 包,并且遵循着相同的约定.Django 自带一个工具,可以帮你生成应用的基础目录结构, ...

  9. php框架费尔康,GitHub - majixian/study-phalcon: phalcon(费尔康)框架学习笔记

    phalcon(费尔康)框架学习笔记 以实例程序invo为例(invo程序放在网站根目录下的invo文件夹里,推荐php版本>=5.4) 环境不支持伪静态网址时的配置 第一步: 在app\con ...

最新文章

  1. 丰田、福特们的焦虑:2018才大举杀入自动驾驶,是刚刚好还是已经晚了?
  2. nginx+passenger下504 Gateway-Timeout问题的解决办法
  3. C++ Swap函数有几种写法?
  4. 如何解决ipconfig、ping不是内部或外部命令
  5. 长期豪赌人工智能,Alphabet是怎样一步一步偷偷改变世界的?
  6. Python lambda函数demo
  7. 本周Asp.net源码更新(6.25-6.29)
  8. linux快捷删除151617文件,mengzhaoliang
  9. LINUX SHELL脚本的if语句实在是诡异
  10. 手机销售网jsp程序设计
  11. 怎么利用Excel实现随机取样
  12. 雷军40岁低潮岁月做了什么,才有小米
  13. matlab将声音和噪声叠加,基于MATLAB有噪声语音信号的处理(最终稿)最新版
  14. 华为机试真题 Python 实现【分月饼】
  15. 百度图片搜索搜出大量色情图片,原因不明
  16. 鸿蒙 3.0 来了!新版本就是强啊!!
  17. react 使用 svg_在React本机中使用svg构建钟面
  18. 操作系统经典问题之爸爸放苹果妈妈放橘子儿子吃橘子女儿吃苹果问题
  19. 外贸公司邮箱怎么申请?往国外邮箱发邮件哪个好用?
  20. 英特尔多核平台编程优化大赛报告

热门文章

  1. 自助建站系统哪个好?
  2. 关于ASTER L1T产品介绍及预处理流程
  3. 用头部运动学习无姿态注视偏差
  4. OSChina 周四乱弹 ——国庆第五天
  5. 文件操作(全类型通用)
  6. 淘宝自然搜索机制排名原理介绍,如何做好店铺商品自然搜索排名?
  7. put命令here are 2 datanode(s) running and 2 node(s) are excluded in this operation.的解决方法
  8. 官方认定!IT程序员正式成为“新生代农民工”-道合顺大数据
  9. 企业FAQ页面案例展示及FAQ站点搭建技巧
  10. Canvas可以画出任何你想要的效果