博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Django框架环境搭建
阅读量:7026 次
发布时间:2019-06-28

本文共 2465 字,大约阅读时间需要 8 分钟。

一.命令行搭建Django项目

  • 安装django
# 在解释器环境下安装django 1.11.9# 在真实python3环境下: pip3 install django==1.11.9# 在虚拟环境下: 先激活虚拟环境 => pip3 install django==1.11.9# 查看django版本: django-admin --version复制代码
  • 创建项目
# 先前往目标路径# 创建项目: django-admin startproject proj_name复制代码
  • 创建应用
# 进入项目根目录# 创建应用: python3 manage.py startapp app_name# 去项目的settings文件添加 应用名 到INSTALLED_APPS复制代码
  • 启动服务
# 在项目根目录下: python3 manage.py runserver 127.0.0.1:8080复制代码

二.Pycharm搭建项目

# 选择有django环境的解释器创建项目# Tools -> Run manage.py Task... -> startapp app_name# 正常运行项目来启动复制代码

三.项目响应请求

完成 请求的处理

  • 在项目的urls.py中配置路由
# 文件: 项目下 urls.pyimport app.views as app_views # 创建的app下的视图文件urlpatterns = [    url(r'^admin/', admin.site.urls),    url(r'index', app_views.index) # 配置的路由]复制代码
  • 在具体应用下的视图文件为请求配置响应函数

  • 第一个响应

# 文件: app应用下 views.pyfrom django.http import HttpResponsedef index(abc):    return HttpResponse('hello django')复制代码
  • 第一个模板页面
from django.shortcuts import renderdef view_action(request):    return render(request, 'template_page.html')复制代码
  • 第一个重定向
from django.shortcuts import redirectdef view_action(request):    return redirect('/重定向的路由/')复制代码

四.模板渲染-冲突处理

前提: 一个项目中有多个应用,每个应用都具有相同命名的模板页面文件, 如app与newapp都有各自的主页index.html

  • 处理模板冲突
# 在settings.py文件中如果配置了应用名# 在自身应用文件夹下创建templates文件,再在其中创建与应用名相同的文件夹,该应用的模板文件都可以放在该文件夹下# eg: newApp访问自身主页def index(request):    return render(requset, 'newApp/index.html')# 在settings.py没有配置应用名# 在项目templates文件下创建与应用名相同的文件夹, 该应用的模板文件都可以放在该文件夹下# 视图处理函数的逻辑一致# 注: 两种同时存在是, 项目下templates优先被访问复制代码

五.静态文件加载

  • 静态文件的根路由 => 规定了加载静态文件的起点
# settings文件下的STATIC_URL = '/static/'# 下方规定静态文件可以放入的文件夹STATICFILES_DIRS = [    os.path.join(BASE_DIR, 'static'),    os.path.join(BASE_DIR, 'a'),    os.path.join(BASE_DIR, 'b'),]# 直接导致模板页面导入静态文件起点:# 
复制代码

六.GET请求的数据获取

def login(request):    if request.method == "GET":        # 获得到则返回一个值, 获取不到返回None    	request.GET.get('user')        # 获得到则返回的多个值        request.GET.getlist('users')复制代码

七.POST请求的数据获取

def login(request):    if request.method == "POST":        # 获得到则返回一个值, 获取不到返回None    	request.POST.get('user')        # 获得到则返回的多个值        request.POST.getlist('users')复制代码

八.连接数据库

import pymysql# 连接数据库conn = pymysql.connect(host='localhost', port=3306, user='root', password='root', db='django')# 设置游标执行sql语句cur = conn.cursor(pymysql.cursors.DictCursor)cur.execute('select * from user')cur.execute('select * from user where usr=%s and pwd=%s', [usr, pwd])# 获取执行结果users = cur.fetchall() # 所有用户数据res = cur.fetchone() # 一条用户数据复制代码

转载于:https://juejin.im/post/5c404a1a518825261e1f0ffb

你可能感兴趣的文章
【100题】第五十九题 用C++编写不能被继承的类
查看>>
轻描淡写
查看>>
mysql基本操作
查看>>
39.CSS3弹性伸缩布局【下】
查看>>
[javascript]图解+注释版 Ext.extend()
查看>>
我的前端工具集(七)div背景网格
查看>>
linux 下mongo 基础配置
查看>>
【Dubbo实战】 Dubbo+Zookeeper+Spring整合应用篇-Dubbo基于Zookeeper实现分布式服务(转)...
查看>>
JUnit单元测试中的setUpBeforeClass()、tearDownAfterClass()、setUp()、tearDown()方法小结
查看>>
java之jvm学习笔记六(实践写自己的安全管理器)
查看>>
Docker容器查看ip地址
查看>>
在PC端或移动端应用中接入商业QQ
查看>>
将python3.6软件的py文件打包成exe程序
查看>>
DataTable 排序
查看>>
大白话5分钟带你走进人工智能-第二十节逻辑回归和Softmax多分类问题(5)
查看>>
嵌入式系统在工业控制中的应用
查看>>
使用httpclient异步调用WebAPI接口
查看>>
c++ 类的对象与指针
查看>>
SSTI(模板注入)
查看>>
rbac models
查看>>