Python---django轻量级框架

Python的WEB框架有Django、Tornado、Flask 等多种,Django相较与其他WEB框架其优势为:大而全,框架本身集成了ORM、模型绑定、模板引擎、缓存、Session等诸多功能。

MVC是众所周知的模式,即:将应用程序分解成三个组成部分:model(模型),view(视图),和 controller(控制 器)。其中:

  • M——管理应用程序的状态(通常存储到数据库中),并约束改变状态的行为(或者叫做“业务规则”)。
  • C——接受外部用户的操作,根据操作访问模型获取数据,并调用“视图”显示这些数据。控制器是将“模型”和“视图”隔离,并成为二者之间的联系纽带。
  • V——负责把数据格式化后呈现给用户。

Django也是一个MVC框架。但是在Django中,控制器接受用户输入的部分由框架自行处理,所以 Django 里更关注的是模型(Model)、模板(Template)和视图(Views),称为 MTV模式:

  • M 代表模型(Model),即数据存取层。 该层处理与数据相关的所有事务: 如何存取、如何验证有效性、包含哪些行为以及数据之间的关系等。
  • T 代表模板(Template),即表现层。 该层处理与表现相关的决定: 如何在页面或其他类型文档中进行显示。
  • V 代表视图(View),即业务逻辑层。 该层包含存取模型及调取恰当模板的相关逻辑。 你可以把它看作模型与模板之间的桥梁。
  • django安装

    使用pip来安装,命令如下

    Pip3 install Django

     检查是否安装成功的命令:

  • 网站:Django(重量级网页框架)、Flask(轻量级网页框架)等。

  • 1. 创建django程序

    终端命令:django-admin startproject sitename  (在当前目录下创建一个Django程序)

    IDE创建Django程序时,本质上都是自动执行上述命令

    使用pycharm创建django程序

    在pycharm中新建Django工程,注意使用虚拟环境

  •  

  • 常用命令:

    python manage.py runserver localhost:8000

    ip:port  (启动服务器,默认ip和端口为http://127.0.0.1:8000/)

    python manage.py startapp appname  (新建 app)

    python manage.py makemigrations  (显示并记录所有数据的改动)

    python manage.py migrate  (将改动更新到数据库)

    python manage.py createsuperuser  (创建超级管理员)

    python manage.py dbshell  (数据库命令行)

    python manage.py  (查看命令列表)

  • 1# MySQL的配置

     数据库

    settings.py文件
  • DATABASES = {
    'default': {
    'ENGINE': 'django.db.backends.mysql', # 注意最后是mysql
    'NAME': 'mooc', # 注意这里的数据库应该以utf-8编码
    'USER': 'root',
    'PASSWORD': '123',
    'HOST': 'localhost',
    'PORT': '3306',
    }
    }

    由于Django内部连接MySQL时使用的是MySQLdb模块,而python3中还无此模块,所以需要使用pymysql来代替

 

2如下设置放置的与project同名的配置的 __init__.py文件中

import pymysql

pymysql.install_as_MySQLdb()

 3使用python manage.py runserver localhost:8000检测服务器是否正常启动,下图已经启动成功

打开pycharm的Terminal,进入该工程的目录新建一个django工程

 4python3 manage.py startapp myapp(里面文件自动生成)

5新建俩html

 

index

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
已经跳转到index页面
</body>
</html>

  login.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<form action="" method="post">
    {% csrf_token %} <!--每次提交生成唯一代码(安全校验)-->
    用户名:<input type="text" name="username"><br>
    密  码:<input type="text" name="password"><br>
    <input type="submit" value="提交">
</form>
</body>
</html>

6settings.py注册

 

7urls.py添加             url("login/", views.login)

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

models.py

 

from django.db import models

# Create your models here.
class User(models.Model):
    username = models.CharField(max_length=30,null=False)
    password = models.CharField(max_length=30,null=False)
    class Meta():
        db_table='users'  # 数据表名

  8在views.py添加

from django.shortcuts import render

# Create your views here.
# 请求转发
from myapp import models


def login(request):
    if request.method == "GET":
        return render(request, "login.html")
    if request.method == "POST":
        user = request.POST.get("username")
        pwd = request.POST.get("password")

        if models.User.objects.filter(username=user,password=pwd):
            return render(request, "index.html")
        else:
            return render(request, "login.html")

正确输入网址

 

 

转载于:https://www.cnblogs.com/july7/p/11048515.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Django 创建以来,各种各样的开源社区已经构建了很多Web 框架,比如JavaScript 社区创建的Angular.js 、Ember.js 和Backbone.js 之类面向前端的Web 框架,它们是现代Web 开发中的先驱。Django 从哪里入手来适应这些框架呢?我们如何将客户端MVC 框架整合成为当前的Django 基础架构? 本书讲述如何利用Django 强大的“自支持”功能体系。本书的目标是引导读者跨越认为Django 太繁重而无法进行快速应用开发的误区。从创建世界上最小的Django 应用到构建RESTful API ,本书将引导读者学习如何利用这种流行的Python Web 框架。 写这本书的目的 我们编写本书主要是出于对Django 的热爱。我们的社区是令人惊奇的,它有很多资源可以用来学习Django 和开发应用。尽管我们也喜欢包括官方的Django 文档在内的一些资源,但这仅仅是对Django 强大功能的过于关注,而非它的解耦设计。Django 是一个令人满意的框架,它带有很多用于构建Web 应用的通用程序。在本书中,我们要突出说明如何将这些组件进行分离和间接替换,并从中选出最适合创建应用的一些组件来。同样地,我们想要将Django 项目和应用的典型框架进行分解。我们的目标是使读者不再提出“我怎样用Django 完成我的X 工作”这样的问题,而是提出“Django 能帮我完成X 工作吗?如果不能,社区有可用的工具吗”这样的问题。 另外,我们想要回答的问题是利用大量客户端实时交互,以及与本地可移动应用匹配的组件构建更多应用时,将Django 放在网络的什么地方适用。作为框架,用户对Django 一无所知,这使得一些喜欢Django 的用户无法得到构建这种应用的指导。我们希望本书能够帮助解决这些问题,想看到Django 及其社区日益壮大,并在多年后大家也成为它的一员。 第1章,世界上最小的Django 项目。创建轻便简单的网络应用是本书的核心思想。在这一章,要创建一个可运行的单行文件“Hello World ”的Django 应用。 第2章,无状态的Web 应用。讲述占位符图像服务的创建方法。第2 章将引导读者通过创建无状态网络应用来生成占位符图像的URL 。 第3章,创建静态站点生成器。快速构建原型是一门有用的创建和辅助网络应用的技术。我们要通过创建静态网站生成器协助维护团队项目的方式来检验该技术的效果。 第4章,构建REST API 。REST API 是创建丰富的、具有内容相关性的网络应用的重要部分。在这一章我们利用Django 静态框架开始构建一个大比例的Scrum 板应用。 第5章,使用Backbone.js 的客户端Django 。本章继续讲述在第4 章中用新构建的RESTful API 创建的Backbone.js 应用。介绍创建新Backbone 应用的每个组件以及如何用Django 同步该客户端框架。 第6章,单页面Web 应用。单页面网络应用是一种能够创建丰富客户端网络应用的途径。在本章,我们将回到简单的Backbone 应用中,不断使这个单页面应用更加健壮。 第7章,实时Django 。这一章讲述创建响应实时交互的网络应用,为用户提供及时满意的服务。为了继续完成先前两章的项目,我们要将一个实时组件添加到使用网络插件和Tornado 的Scrum 板上,这是一个用Python 编写的异步网络库。 第8章,Django 和Tornado 通信。将强大的Django 与Tornado 的健壮特性相结合是创建可变、实时的Django 应用的重要标志。在本章中,我们将通过集成Django 的通信能力扩展Tornado 服务器的功能,来建立一种既安全又可交互的联系。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值