Django基本知识
一、安装及使用
下载安装
命令行:pip3 install django==1.11.21
pycharm
创建项目
命令行:
找一个文件夹存放项目文件,打开终端:
django-admin startproject 项目名称
项目目录
pycahrm
启动
命令行
切换到项目的根目录下 manage.py
python36 manage.py runserver
—— 127.0.0.1:80`python36 manage.py runserver 80
——127.0.0.1:80python36 manage.py runserver 0.0.0.0:80
——0.0.0.0:80
pycharm:点绿三角启动 可配置
简单使用
示例:返回HTML指定文件
- # 在urls.py中
- # 导入
- from django.shortcuts import HttpResponse,render
-
- # 函数
- def index(request):
- # return HttpResponse('index')
- return render(request,'index.html')
-
- # url和函数对应关系
- urlpatterns = [
- url(r'^admin/', admin.site.urls),
- url(r'^index/', index),
- ]
二、静态文件
配置
在settings.py中设置
- STATIC_URL = '/static/' # 别名
- STATICFILES_DIRS = [ # 设置文件路径,可以设置多个
- os.path.join(BASE_DIR, 'static1'),
- os.path.join(BASE_DIR, 'static'),
- os.path.join(BASE_DIR, 'static2'),
- ]
使用
在路径前添加别名:/static/
多个文件路径,也是使用同一个别名,不是文件名
如果别名后的路径名相同,按照STATICFILES_DIRS列表的顺序进行查找
- <link rel="stylesheet" href="/static/css/login.css"> {# 别名开头 #}
三、简单的登录实例
form表单提交数据注意的问题:
提交的地址:action="",请求的方式:method="post"
所有的input框有name属性,如name="username"
有一个input框的type="submit"或者有一个button
提交post请求,由于Django中有一个csrf校验,所有请求会出问题
解决方式:把settings中MIDDLEWARE的'django.middleware.csrf.CsrfViewMiddleware'注释掉
重定向
导入:from django.shortcuts import redirect
使用方式
- # 在函数中使用,例如
- return redirect('/index/') # 参数:路径url
- # 注意:前面必须加/,代表从url根拼接,否则就会在当前url后面一直拼接
- from django.shortcuts import HttpResponse, render, redirect
-
- def index(request):
- # return HttpResponse('index')
- return render(request, 'index.html')
-
- def login(request):
- if request.method == 'POST':
- # 获取form表单提交的书籍
- username = request.POST['username']
- password = request.POST['password']
- # 验证用户名和密码
- if models.User.objects.filter(username=username,password=password):
- # 验证成功跳转到index页面
- # return redirect('https://www.baidu.com/')
- return redirect('/index/')
- # 不成功 重新登录
- return render(request, 'login.html')
-
- urlpatterns = [
- url(r'^admin/', admin.site.urls),
- url(r'^index/', views.index),
- url(r'^login/', views.login),
- ]
示例
四、app
创建app
命令行:python manage.py startapp app名称
pycharm:tools --> run manage.py task --> 输入命令:startapp app名称
注册app
在settings.py中设置,例:app名为app01
- INSTALLED_APPS = [
- ...
- 'app01',
- 'app01.apps.App01Config', # 推荐写法
- ]
app中的文件
migrations:存放迁移文件的
admin.py:Django提供的后台管理工具
app.py:与app信息相关的
models.py:跟ORM有关的内容
views.py:视图,写函数的
五、使用MySQL流程
创建一个MySQL数据库:create database day53;
在settings.py中设置,Django连接MySQL数据库:
- DATABASES = {
- 'default': {
- 'ENGINE': 'django.db.backends.mysql', # 引擎
- 'NAME': 'day53', # 数据库名称
- 'HOST': '127.0.0.1', # ip地址
- 'PORT':3306, # 端口
- 'USER':'root', # 用户
- 'PASSWORD':'' # 密码
- }
- }
- DATABASES = {
在与settings,py同级目录下的init文件中写入:
- import pymysql
- pymysql.install_as_MySQLdb()
- import pymysql
创建表(在app下的models.py中写类):
- from django.db import models
-
- class User(models.Model):
- username = models.CharField(max_length=32) # username varchar(32)
- password = models.CharField(max_length=32) # username varchar(32)
- from django.db import models
执行数据库迁移的命令:
python manage.py makemigrations:检测每个注册app下的model.py,记录model的变更记录
python manage.py migrate:同步变更记录到数据库中
六、MVC和MTV
MVC
M: model 模型 —— 和数据库打交道
V:view 视图 —— HTML
C: controller 控制器 —— 调度 传递指令 业务逻辑
MTV:
M: model 模型 ORM —— 和数据库打交道
T: tempalte 模板 —— HTML
V:view 视图 —— 函数 业务逻辑
djando是MTV模式
Django基本知识的更多相关文章
- Django之知识总结
1. 课程介绍 - 数据类型 - 函数 - 面向对象三大特性:继承,封装,多态 - socket:本质传输字节:所有网络通信都基于socket - 数据库设计:单表.FK.M2M (自己作业:自己领域 ...
- django基础知识
一.django的安装 1. pip3 install django 2. 把安装路径加到环境变量里以便以后启动admin相关命令,在windows系统中---我的电脑---属性----高级系统设置- ...
- Django models知识小点
django 为使用一种新的方式,即关系对象映射(ORM) 一,创建表 1,基本结构 注意: 1,创建标的时候,如果我们不给表加自增列,生成表的时候会默认给我们生成一列为ID的自增列,当然我们也可以自 ...
- Django 基础知识
Django Models django 本身提供了非常强大易使用的ORM组件,并且支持多种数据库,如sqllite,mysql,progressSql,Oracle等,当然最常用的搭配还是mysql ...
- Django ORM 知识概要
相关命令 python3 manage.py makemigrations 根据模型生成相关迁移文件 python3 manage.py migrate 根据迁移文件,将表结构更新到数据库中,并在Dj ...
- Django进阶知识
drf学习之Django进阶点 一.Django migrations原理 1.makemigrattions: 相当于在每个app下的migrations文件夹下生成一个py脚本文件用于创建表或则修 ...
- Django准备知识-web应用、http协议、web框架、Django简介
一.web应用 Web应用程序是一种可以通过web访问的应用程序(web应用本质是基于socket实现的应用程序),程序的最大好处是用户很容易访问应用程序,用户只需要有浏览器即可,不需要再安装其他软件 ...
- django 基础知识回顾
内容回顾: 1. ajax参数 url: type: data: 1.value不能是字典 {k1:'v1',k2:[1,2,3,],k3; JSON.string} 2.$('').serilize ...
- django基础知识之Response对象
HttpResponse对象 在django.http模块中定义了HttpResponse对象的API HttpRequest对象由Django自动创建,HttpResponse对象由程序员创建 不调 ...
- Django基础知识MTV
Django简介 Django是使用Python编写的一个开源Web框架.可以用它来快速搭建一个高性能的网站. Django也是一个MVC框架.但是在Django中,控制器接受用户输入的部分由框架自行 ...
随机推荐
- 渗透测试学习 十八、 XSS跨站脚本漏洞详解 续
XSS平台搭建 ISS+zkeysphp 首先在IIS中新建一个网站,详细过程可以看我之前写搭环境的文章 (下面的写入选项不需要选中) 安装ZKEYS PHP 修改数据库配置 用户名:root 密码: ...
- nginx 配置实例-负载均衡
1.实现效果 (1)浏览器地址栏输入地址 http://www.123.com/edu/a.html,负载均衡效果,平均 8080 和 8081 端口中 2.准备工作 (1)准备两台 tomcat 服 ...
- excel制作田字格,excel行高磅,列宽1/10英寸;
打开一个excel表格,发现列宽是行高的4倍: 开始-格式中查看,发现行高14.25磅,列宽8.38*1/10英寸: 网上百度,了解1英寸=72磅: 那么列宽8.38=60.336磅: 60.336英 ...
- Tensorflow之MNIST手写数字识别:分类问题(2)
整体代码: #数据读取 import tensorflow as tf import matplotlib.pyplot as plt import numpy as np from tensorfl ...
- 使用python发邮件:
import smtplibfrom email.mime.text import MIMETextfrom email.utils import formataddr#定义发送的内容:msg = M ...
- CME Futures & Options Order Book
http://algo-logic.com/futures-options-orderbook Algo-Logic Systems’ Futures & Options (F&O) ...
- IDEA取消SVN关联 , 在重新分享项目
IDEA取消SVN关联,在重新分享项目 安装插件 1.打开Intellij中工具栏File的setting(ctrl+alt+s),选择plugins,在右边搜索框输入“SVN”,搜索.选择“ ...
- Docker 简单发布dotnet core项目 图文版
原文:https://www.cnblogs.com/chuankang/p/9474591.html docker发布dotnet core简单流程 需要结合这个版本看哈 地址:https://ww ...
- 【2019.8.8 慈溪模拟赛 T2】query(query)(分治+分类讨论)
分治 首先,我们考虑分治处理此问题. 每次处理区间\([l,r]\)时,我们先处理完\([l,mid]\)和\([mid+1,r]\)两个区间的答案,然后我们再考虑计算左区间与右区间之间的答案. 处理 ...
- Eureka注册中心的自我保护模式
如果在Eureka Server的首页看到以下这段提示,则说明Eureka已经进入了保护模式. EMERGENCY! EUREKA MAY BE INCORRECTLY CLAIMING INSTAN ...