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

正确输入网址

最新文章

  1. ***HTML +CSS 总结与归纳
  2. stm32的串口接收字符串以十六进制数
  3. window下部署php_redis扩展
  4. userscript.user.js 文件头
  5. 关于安装完Node.js 出现node is not dedined 问题
  6. ECSTORE1.2系统更改后台密码
  7. 使用nodejs爬取和讯网高管增减持数据
  8. Java基础之J2EE规范
  9. 聊聊vue组件开发的“边界把握”和“状态驱动”
  10. An overnight dance in discotheque
  11. 201521123061 《Java程序设计》第十四周学习总结
  12. EF:分页查询 + 条件查询 + 排序
  13. ueditor 编辑器常用方法
  14. 2018-2019-2 网络对抗技术 20165318 Exp6 信息搜集与漏洞扫描
  15. 转换类型 totypeString
  16. LeetCode OJ 80. Remove Duplicates from Sorted Array II
  17. Django 常见错误总结
  18. HDU 5306 线段树
  19. [BZOJ 5072][Lydsy1710月赛]小A的树
  20. Linux下Diff命令

热门文章

  1. 推荐一个以动画效果显示github提交记录的黑科技工具:Gource
  2. Codeforces 1076D——最短路算法
  3. JQQ文字素材
  4. 【整理】iview中刷新页面的时候更新导航菜单的active-name
  5. js中重载问题
  6. numpy次方计算
  7. JavaEE-06 Servlet基础
  8. 批处理 更新 svn git hg
  9. SMTP error 554 !!
  10. [CF] 219D Choosing Capital for Treeland