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")

正确输入网址

 

 

posted @ 2019-06-18 23:17  三只坚果  阅读(845)  评论(0编辑  收藏  举报