zoukankan      html  css  js  c++  java
  • 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")

    正确输入网址

  • 相关阅读:
    Linux 目录结构
    date命令--修改linux系统时间
    uniq linux下去除重复行命令
    Linux查看程序端口占用情况
    openfire连接登陆优化方案
    hdu 4848 搜索+剪枝 2014西安邀请赛
    经常使用ARM汇编指令
    一维DFT
    C++ lambda 表达式传递的变量默认不可变
    wm命令用法及LCD显示图标大小不正常时解决的方法
  • 原文地址:https://www.cnblogs.com/july7/p/11048515.html
Copyright © 2011-2022 走看看