上面我们已经知道Python的WEB框架有Django、Tornado、Flask 等多种,Django相较与其他WEB框架其优势为:大而全,框架本身集成了ORM、模型绑定、模板引擎、缓存、Session等诸多功能。今天就一起来学习下Django;

一、准备工作

  1. 1)打开cmd,进入到python安装路径下的Scripts;
  2. 2)使用pip安装:pip install Django
  3. 3)添加环境变量:python安装路径下的Scripts;

二、基本配置

1. 创建django程序

  • 终端命令:django-admin startproject sitename
  • IDE创建Django程序时,本质上都是自动执行上述命令

目录结构如下:

2. 配置文件

1)数据库:

  1. DATABASES = {
  2. 'default': {
  3. 'ENGINE': 'django.db.backends.mysql',
  4. 'NAME':'dbname',
  5. 'USER': 'root',
  6. 'PASSWORD': 'xxx',
  7. 'HOST': '',
  8. 'PORT': '',
  9. }
  10. }

2)模板:

  1. TEMPLATE_DIRS = (
  2. os.path.join(BASE_DIR,'templates'),
  3. )

3)静态文件:

  1. STATICFILES_DIRS = (
  2. os.path.join(BASE_DIR,'static'),
  3. )

三、功能分类

1. 创建APP

  1. # 切换到Django项目目录,执行命令
  2. python manage.py startapp cmdb
  3.  
  4. # 目录结构
  5. - cmdb
  6. - migrations  #数据库操作记录(只是修改表结构的记录)
  7. - init      #表示python数据包(python3中有无均可)
  8. - admin      #Django为我们提供的后台管理
  9. - apps      #配置当前app
  10. - models     #创建数据库表结构,写指定的类,通过命令可以创建数据库结构
  11. - tests      #单元测试
  12. - views      #写业务逻辑代码,最重要的就是这个文件了

2. 简单实例

1)登录实例

templates下生成html文件,如login.html

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <title>Title</title>
  6. <style>
  7. label{
  8. width: 80px;
  9. text-align: right;
  10. display: inline-block;
  11. }
  12. </style>
  13. <link rel="stylesheet" href="/static/commons.css"/>
  14. </head>
  15. <body>
  16. <form action="/login/" method="post">
  17. <p>
  18. <label for="username">用户名:</label>
  19. <input id="username" type="text" name="user"/>
  20. </p>
  21. <p>
  22. <label for="password">密码:</label>
  23. <input id="password" type="text" name="pwd"/>
  24. <input type="submit" value="提交" style="cursor:pointer"/>
  25. <span style="color: red;font-size:15px;">{{error_msg}}</span>
  26. </p>
  27. </form>
  28. </body>
  29. </html>

修改url文件,定义路由规则

  1. from django.conf.urls import url
  2. from django.contrib import admin
  3. from cmdb import views
  4.  
  5. urlpatterns = [
  6. url(r'^admin/', admin.site.urls),
  7. url(r'^login', views.login),
  8. ]

定义视图函数:app下views.py

  1. from django.shortcuts import render
  2.  
  3. # Create your views here.
  4. from django.shortcuts import HttpResponse
  5. from django.shortcuts import render
  6. from django.shortcuts import redirect
  7. import time
  8. USER_LIST=[
  9. {'username':'alex','email':'lei10@qq.com','gender':'男'},
  10. {'username':'cc','email':'lei12@qq.com','gender':'男'},
  11. {'username':'tt','email':'lei13@qq.com','gender':'女'}
  12. ]
  13. def home(request):
  14. if request.method=="POST":
  15. u = request.POST.get("username");
  16. e = request.POST.get("email");
  17. g = request.POST.get("gender");
  18. temp = {'username':u,'email':e,"gender":g}
  19. USER_LIST.append(temp)
  20. return render(request,"home.html",{"user_list":USER_LIST})
  21. def login(request):
  22. error_msg=""
  23. if request.method=="POST":
  24. user = request.POST.get('user',None);
  25. pwd = request.POST.get('pwd',None);
  26. if user=="root" and pwd=="111111":
  27. return redirect("/home/")
  28. elif user=="":
  29. error_msg="用户名不能为空!"
  30. elif pwd == "":
  31. error_msg = "密码不能为空!"
  32. else:
  33. error_msg="用户名或密码错误!";
  34. return render(request,"login.html",{'error_msg':error_msg})

浏览器访问http://127.0.0.1:8000/login显示login.html写的登录页面,可输入登录信息查看页面显示

3)其他

  1. request.GET.get('',None) # 获取get请求发来的数据
  2. request.POST.get('',None) # 获取post请求发来的数据
  3. return HttpResponse("字符串")
  4. return render(request, "HTML模板的路径")
  5. return redirect('/只能填URL')

  

web前端基础知识- Django基础的更多相关文章

  1. Web前端理论知识记录

      Web前端理论知识记录 Elena· 5 个月前 cookies,sessionStorage和localStorage的区别? sessionStorage用于本地存储一个会话(session) ...

  2. Linux基础知识与基础命令

    Linux基础知识与基础命令 系统目录 Linux只有一个根目录,没有盘符的概念,文件目录是一个倒立的树形结构. 常用的目录功能 bin 与程序相关的文件 boot 与系统启动相关 cdrom 与Li ...

  3. day63:Linux:nginx基础知识&nginx基础模块

    目录 1.nginx基础知识 1.1 什么是nginx 1.2 nginx应用场景 1.3 nginx组成结构 1.4 nginx安装部署 1.5 nginx目录结构 1.6 nginx配置文件 1. ...

  4. java线程基础知识----线程基础知识

    不知道从什么时候开始,学习知识变成了一个短期记忆的过程,总是容易忘记自己当初学懂的知识(fuck!),不知道是自己没有经常使用还是当初理解的不够深入.今天准备再对java的线程进行一下系统的学习,希望 ...

  5. 这些C++基础知识的基础知识你都学会了吗?

    一.C++基础知识 新的数据类型 C语言中的数据类型  C++中新的数据类型 思考:新的数据类型有什么好处?请看下面的代码:  可以见得:新的类型使整个程序更加简洁,程序变得易读易懂!这个就是bool ...

  6. web前端基础知识 - Django进阶

    1. 路由系统 1.1 单一路由对应 url(r'^index$', views.index), 1.2 基于正则的路由 url(r'^index/(\d*)', views.index), url( ...

  7. web前端篇:JavaScript基础篇(易懂小白上手快)-2

    目录 一.内容回顾: ECMAScript基础语法 1.基本数据类型和引用数据类型 2.条件判断和循环 3.赋值运算符,逻辑运算符 4.字符串的常用方法 5.数组的常用方法 6.对象 7.函数 8.日 ...

  8. web前端篇:JavaScript基础篇(易懂小白上手快)-1

    目录 详细内容: 0.JavaScript的引入 1.第一个JavaScript 2.变量 3.变量的类型 4.数组 5.条件语句 6.三元运算符 7.循环 8.函数 9.对象(object): 10 ...

  9. web 前端冷知识

    前端已经被玩儿坏了!像console.log()可以向控制台输出图片等炫酷的玩意已经不是什么新闻了,像用||操作符给变量赋默认值也是人尽皆知的旧闻了,今天看到Quora上一个帖子,瞬间又GET了好多前 ...

随机推荐

  1. 数位DP BZOJ 1026 [SCOI2009]windy数

    题目链接 前面全是0的情况特判 #include <bits/stdc++.h> int dp[10][10]; int digit[10]; int DFS(int pos, int v ...

  2. 玩转AR,联想将在2017年推出第二款Tango AR手机

    今年6月份,联想与谷歌合作推出了全球首款消费级AR手机Phab2 Pro,并获得很大的关注.作为谷歌Project Tango的一部分,这款手机的最大亮点是它搭载了三颗后置摄像头和多个传感器,机身背面 ...

  3. Unity: Passing Constructor Parameters to Resolve

    In this tutorial we will go through of couple different ways of using custom constructor parameters ...

  4. H.264的优势和主要特点

    H.264,同时也是MPEG-4第十部分,是由ITU-T视频编码专家组(VCEG)和ISO/IEC动态图像专家组(MPEG)联合组成的联合视频组(JVT,Joint Video Team)提出的高度压 ...

  5. 无聊拆中国银行密码器和农业银行U盾

    原始状态 不知从何下手,直接斜口钳暴力剪开 开始露出电路板了,继续拆 拆完是这样的,屏幕没有焊接,直接靠外壳压上去的 背面图 相对而言,农行的就很好拆 后盖很好撬开 前面就是按键,没什么,屏是1286 ...

  6. Oracle EBS - AOL

    AOL: (Path: /u43/dev6/interface/aol) 1. Goto system administrator response 2. View -> Request (Sa ...

  7. Win7 IIS下启用ASP.NET

    问题产生的原因 先装的Win7,未启用IIS, 后启用IIS功能,即使选中开发选项只能默认打开ASP.net 中FrameWork2的支持,其它 版本的FrameWork默认IIS不支持,需要手工开启 ...

  8. java内置数据类型

    常量在程序运行时,不会被修改的量. 在 Java 中使用 final 关键字来修饰常量,声明方式和变量类似: finaldouble PI =3.1415927; 虽然常量名也可以用小写,但为了便于识 ...

  9. 纯Java配置使用slf4j配置log4j

    工程目录如下 代码里面用的是slf4j,但是想要用log4j来管理日志,就得添加slf4j本来的jar,然后添加log4j和slf4j箱关联的jar即可. 如果是maven项目的话添加下面的依赖即可 ...

  10. java并发容器类

    本文主要介绍java并发容器相关实现类,collections节点下接口方法介绍. Queue Java提供的线程安全的Queue可以分为阻塞队列和非阻塞队列,其中阻塞队列的典型例子是Blocking ...