Django-1 入门
时间:2020-04-15
本文章向大家介绍Django-1 入门,主要包括Django-1 入门使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
Django安装及初始配置
1、安装及常用命令
#1、安装
pip install django
#2、创建项目
django-admin startproject project_name
#3、运行django程序
python manage.py runserver 127.0.0.1:8001
#4、创建app
python manage.py startapp cmdb
#5、数据库表操作
python manage.py makemigrations
python manage.py migrate
#操作数据库不成功时,使用--empty重新建表
python manage.py makemigrations --empty 应用名
2、各个文件的作用
mysite #对整个程序进行配置
init
settings #配置文件
url #URL对应关系
wsgi #遵循WSIG规范,uwsgi + nginx
manage.py #管理Django程序:
app:
migrations #数据库表结构修改记录
admin #Django为我们提供的后台管理
apps #配置当前app
models #ORM,写指定的类 通过命令可以创建数据库结构
tests #单元测试
views #业务代码
3、配置说明
#配置模板路径
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [os.path.join(BASE_DIR, 'templates')], #模板路径
'APP_DIRS': True,
'OPTIONS': {
'context_processors': [
'django.template.context_processors.debug',
'django.template.context_processors.request',
'django.contrib.auth.context_processors.auth',
'django.contrib.messages.context_processors.messages',
],
},
},
]
#配置静态目录
STATIC_URL = '/static/'
STATICFILES_DIRS = (
os.path.join(BASE_DIR, 'static'),
)
#注释跨站请求伪造
'django.middleware.csrf.CsrfViewMiddleware',
#settings增加app名
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'cmdb',
]
#mysql数据库的话,在settings里修改DATABASES
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'myweb',
'USER': 'root',
'PASSWORD': 'my-pw',
'HOST': '172.3.250.254',
'PORT': '3306',
}
}
#Django默认使用MySQLdb模块链接MySQL
#主动修改为pymysql,在project同名文件夹下的__init__文件中添加如下代码即可:
import pymysql
pymysql.install_as_MySQLdb()
Django使用
1、接收请求响应
#主目录urls:
from django.contrib import admin
from django.urls import path,re_path
from django.shortcuts import HttpResponse
from cmdb import views as cmdb
urlpatterns = [
path(r'admin/', admin.site.urls),
path(r'login',cmdb.login),
path(r'clogin/',cmdb.Login.as_view()),
]
#app中view中:
from django.shortcuts import render
from django.shortcuts import HttpResponse
from django.shortcuts import redirect
# Create your views here.
from django.views import View
#FBV
def login(request):
if request.method == 'GET':
return render(request,'login.html') #可直接返回模板文件
elif request.method == 'POST':
return HttpResponse("<h1>OK</h1>") #直接返回文本
else:
return redirect('http://baidu.com') #跳转或重定向
#CBV
class Login(View):
def dispatch(self,request,*args,**kwargs):
'''
可以通过重写dispatch来执行更多的事情
:param request:
:param args:
:param kwargs:
:return:
'''
result = super(Login,self).dispatch(request,*args,**kwargs)
return result
def get(self,request):
return render(request,'login.html')
def post(self,request):
return HttpResponse("<h1>OK</h1>")
def delete(self,request):
return redirect('http://baidu.com')
2、接收请求的方法
1、获取用户请求数据
request.method #请求方式
request.GET
request.POST
request.POST.get('user') #获取来自用户提交的数据
request.POST.getlist() #checkbox等多选的内容
request.FILES
示例
上传文件:
from django.shortcuts import render
from django.shortcuts import HttpResponse
from django.shortcuts import redirect
def index(request):
if request.method == 'POST':
obj = request.FILES.get('put_file')
f = open(obj.name,mode='wb')
for item in obj.chunks():
f.write(item)
f.close()
return HttpResponse("OK")
else:
return render(request,'index.html')
<body>
<form action="/index" method="post" enctype="multipart/form-data">
<div>
<input type="file" name="put_file"/>
</div>
<div>
<input type="submit" value="上传"/>
</div>
</form>
</body>
原文地址:https://www.cnblogs.com/chimeiwangliang/p/12706768.html
- 【请您听我说】PHP语法特点的一些看法
- 喵哈哈村的魔法考试 Round #1 (Div.2) 题解&源码(A.水+暴力,B.dp+栈)
- 查找第k小的元素(O(n)递归解法)
- C/C++对bool operator < (const p &a)const的认识,运算符重载详解(杂谈)
- C/C++中substr函数的应用(简单讲解)
- C++ STL学习之容器set和multiset (补充材料)
- Codeforces Round #410 (Div. 2)(A,字符串,水坑,B,暴力枚举,C,思维题,D,区间贪心)
- 关于int *a[常量]与int (*a)[常量]的分析与区分(详解)
- python笔记3-发送邮件(smtplib)
- 关关的刷题日记01—Leetcode 169. Majority Element
- 关小刷刷题02——Leetcode 169. Majority Element 方法2和3
- 树链剖分简单分析及模板(杂谈)
- 第十五届北京师范大学程序设计竞赛现场决赛题解&源码(A.思维,C,模拟,水,坑,E,几何,思维,K,字符串处理)
- python+requests接口自动化项目完整框架设计
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- Laravel 框架实现无限极分类
- 这样设置IDEA,让你爽到飞起!
- 这些年,我写过的BUG(一)
- Selenium处理下拉列表
- 掌握好这几个css属性,少写100行js代码
- 计算机基础知识总结与操作系统 PDF 下载
- Kafka工作流程及文件存储机制
- JS破解初探,折腾到头秃的美拍视频采集下载
- 去哪儿景点信息爬取并使用Django框架网页展示
- Kubernetes v1.15.3 升级到 v1.18.5 心得
- 结巴分词seo应用,Python jieba库基本用法及案例参考
- nali一个可以查询IP归属和CDN的命令
- 图片采集,python多线程采集头像图片源码附exe程序及资源包
- Python json数据爬取处理,红点官网大奖设计作品爬取
- 斗图狂魔必备沙雕表情包,python多线程爬取斗图啦表情图片