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