广告
返回顶部
首页 > 资讯 > 前端开发 > node.js >Django怎么配置使用
  • 211
分享到

Django怎么配置使用

2024-04-02 19:04:59 211人浏览 安东尼
摘要

本篇内容主要讲解“Django怎么配置使用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“DjanGo怎么配置使用”吧! 1. 准备工作   &nb

本篇内容主要讲解“Django怎么配置使用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“DjanGo怎么配置使用”吧!

1. 准备工作

    使用pip安装: pip install Django

2. 基本配置

    1)创建django程序

       a. 终端命令: django-admin startproject mysite , IDE创建django程序时,本质上都是自动执行上述命令

    2)目录结构如下:

Django怎么配置使用

3)配置文件 --  (settings.py)

    a. 数据库

   Django怎么配置使用

   b. 模板

  Django怎么配置使用

  c. 静态文件

   Django怎么配置使用

3. 创建App

    a. 命令 

        python manage.py startapp cmdb

       Django怎么配置使用

    b. cmdb 目录结构如下:

    Django怎么配置使用

4. 登录实例

   a.  templates目录下生成html文件,如login.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>登录</title>
</head>

<body>
    <fORM action='/login/' method='POST'>
        <p>
            <input type="text" name="user" placeholder="用户名"/>
        </p>
        <p>
            <input type="passWord" name="pwd" placeholder="密码"/>
        </p>
        <p>
            男:<input type="radio" name="sex" value="男"/>
            女:<input type="radio" name="sex" value="女"/>
        </p>
        <p>
            <input type="submit" value="提交"/>
        </p>
    </form>

</body>
</html>

 b. 修改url文件,定义路由规则

from django.contrib import admin
from django.conf.urls import url
from cmdb import views

urlpatterns = [
    url(r'^admin/', admin.site.urls),
    url(r'^login/', views.login),

]

c. 定义视图函数:app下views.py

from django.shortcuts import render
from django.shortcuts import HttpResponse
from django.shortcuts import redirect

# Create your views here.

USER_LIST = {}
def login(request):
    if request.method == 'GET':    #判断请求方式
        return render(request, 'login.html')
    elif request.method == 'POST':
        user = request.POST.get('user')   #post请求,单选、输入框获取值
        pwd = request.POST.get('pwd')
        sex = request.POST.get('sex')
        if user and pwd:
            USER_LIST['name'] = user
            USER_LIST['pwd'] = pwd
            USER_LIST['sex'] = sex
            return render(request, 'success.html', {"user_list": USER_LIST}) 
        else:
            return HttpResponse('请求不能为空')
    else:
        return HttpResponse('请求方式不是get\post')   #HttpResponse("字符串")

d. 提交成功后,success.html页面 取值, hmtl模板获取 字典数据

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>登录成功页面</title>
</head>
<body>

  {{ user_list.name}}  #获取字典中某个key的值

 
  <ul>
      {% for k,v in user_list.items %}  #循环字典
          <li>{{ k }} : {{ v }}</li>
      {% endfor %}
  </ul>

</body>
</html>

 e. 通过浏览器访问: http://127.0.0.1:8000/login/ ,显示login.html登录页面,输入登录信息,登录成功后,获取的数据如下

Django怎么配置使用

总结:通过上面的例子,我们可以知道django的生命周期:

  ---->URL对应关系(匹配) --->视图函数 --->返回用户字符串

 ----> URL对应关系(匹配) --->视图函数 --->打开一个HTML文件,读取内容

5. 其他

request.GET.get('',None) #获取get请求发来的数据
request.POST.get('',None) #获取post请求发来的数据
return render(request, 'HTML模板的路径')
return redirect('只能填写URL')

对应多选框、上传文件怎么获取值呢?

a. 多选框,html格式如下: 

multiple="multiple" 表示多选
 <p>
        <select name="city" multiple="multiple">
             <option value="bj" >北京</option>
             <option value="sh" >上海</option>
             <option value="sz" >深圳</option>
          </select>
  </p>

 views 视图页面:

 city = request.POST.getlist('city')

页面访问结果:

Django怎么配置使用

b. 上传文件

  主要方法

文件对象 = request.FILES.get('xx')
文件名 = 文件对象.name 
文件大小 = 文件对象.size
文件内容 = 文件对象.chunks()

  html格式, form表单需要添加属性: 

enctype="multipart/form-data"
<p>
       <input type="file" name="upload"/>
 </p>

views视图:



# 上传文件
        upload_file_obj = request.FILES.get('upload')
        print(type(upload_file_obj), upload_file_obj)  #<class 'django.core.files.uploadedfile.InMemoryUploadedFile'> 2.jpg
        #保存上传的文件到upload目录
        upload_path = os.path.join('upload', upload_file_obj.name)
        fw = open(upload_path, 'wb')

        for line in upload_file_obj.chunks(): #chunks表示所有的数据库,是个迭代器
            fw.write(line)
        fw.close()

页面访问结果:

Django怎么配置使用

 最终的views代码:

from django.shortcuts import render
from django.shortcuts import HttpResponse
from django.shortcuts import redirect
import os

# Create your views here.

USER_LIST = {}
def login(request):
    if request.method == 'GET':    #判断请求方式
        return render(request, 'login.html')
    elif request.method == 'POST':
        user = request.POST.get('user')   #post请求,单选、输入框获取值
        pwd = request.POST.get('pwd')
        sex = request.POST.get('sex')
        #多选获取值
        city = request.POST.getlist('city')

        # 上传文件
        upload_file_obj = request.FILES.get('upload')
        print(type(upload_file_obj), upload_file_obj)  #<class 'django.core.files.uploadedfile.InMemoryUploadedFile'> 2.jpg
        #保存上传的文件到upload目录
        upload_path = os.path.join('upload', upload_file_obj.name)
        fw = open(upload_path, 'wb')

        for line in upload_file_obj.chunks(): #chunks表示所有的数据库,是个迭代器
            fw.write(line)
        fw.close()

        if user and pwd:
            USER_LIST['name'] = user
            USER_LIST['pwd'] = pwd
            USER_LIST['sex'] = sex
            USER_LIST['city'] = city
            USER_LIST['file'] = upload_file_obj.name
            return render(request, 'success.html', {"user_list": USER_LIST})
        else:
            return HttpResponse('请求不能为空')
    else:
        return HttpResponse('请求方式不是get\post')   #HttpResponse("字符串")

 6. 基于正则表达式的URL

    简单例子如下:

    a. 修改url文件,定义路由规则

urlpatterns = [
    # url(r'^admin/', admin.site.urls),
    # url(r'^login/', views.login),
    url(r'^index/', views.index),
    url(r'^detail/', views.detail),

]

    b. 视图 views

USER_DICT = {
     "1": {"name": "root1", "email": "qwe1@163.com"},
     "2": {"name": "root2", "email": "qwe2@163.com"},
     "3": {"name": "root3", "email": "qwe3@163.com"},
     "4": {"name": "root4", "email": "qwe4@163.com"},
}
def index(request):
    return render(request, 'index.html', {"user_dict":USER_DICT})

  c. 模板 index.html ,循环字典信息 

          点击任意信息可跳转到detail?nid=x页面,获取详细信息

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>index</title>
</head>
<body>
    <ul>
        {% for k,v in user_dict.items %}
            <li><a target="_blank" href="/detail?nid={{ k }}">{{ v.name }}</a></li>
        {% endfor %}
    </ul>
</body>
</html>

d. 浏览器访问  http://127.0.0.1:8000/index/, 页面如下: 

Django怎么配置使用

e. 点击页面上任意信息,可以跳转到detail详细页面, detail页面的views视图

def detail(request):
    nid = request.GET.get('nid')   #get请求方式,或者到nid的值,即USER_DICT的key
    detail_info = USER_DICT[nid]
    return render(request, 'detail.html', {"detail_info": detail_info})

f. detail.html模板信息如下:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>详情页面</title>
</head>
<body>
  <h2>详细信息</h2>
    <h7>用户名:{{ detail_info.name }}</h7>
    <h7>邮箱:{{ detail_info.email }}</h7>
</body>
</html>

g. 点击root2超链接,跳转到另一个页面,如下:

Django怎么配置使用

7. 一类url方式的优化

 以上 上方的detail页面get请求时,使用的形式是 http:127.0.0.1:80/detail?nid=x 方式,nid的是动态获取,若觉得改方式比较low,可以更改为以下方式:

 http://127.0.0.1:80/detail-x.html

a. url的优化写法

Django怎么配置使用

b.views的优化写法

Django怎么配置使用

c. html模板的优化写法

Django怎么配置使用

d. 浏览页面访问效果

Django怎么配置使用

 8. 若urls进行了变更,那么涉及的urls也需要改动,多次变更后,可能修改就会有遗漏,有什么高效的解决方法吗?

    a. 找到urls.py文件,修改路由规则

# url(r'detail/', views.detail),
    # url(r'detail-(\d+).html/', views.detail),  #正则表达式
    url(r'detail-(\d+).html/', views.detail, name='detail_name'),  #正则表达式

    b, 找到views文件,进行修改

def index(request):
    # return HttpResponse('index')
    return render(request, 'index.html', {"user_dict": USER_DICT})

# def detail(requerst):
#     nid = requerst.GET.get('nid')
#     detail_info = USER_DICT[nid]
#     return render(requerst, 'detail.html', {"detail_info": detail_info})

def detail(requerst,nid):   # nid指定的是(\d+)里的内容
    detail_info = USER_DICT[nid]
    return render(requerst, 'detail.html', {"detail_info": detail_info})

c. 在templates目录下的index.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>字典循环获取</title>
</head>
<body>

    {{ user_dict.KEY1 }}
    <!--
    <ul>
        {% for k,v in user_dict.items %}
            <li><a target="_blank" href="/detail?nid= {{ k }}">{{ v.name }}</a></li>
        {% endfor %}
    </ul>

    <ul>
        {% for k,v in user_dict.items %}
            <li><a target="_blank" href="/detail-{{ k }}.html">{{ v.name }}</a></li>
        {% endfor %}
    </ul>
  -->
    <ul>
        {% for k,v in user_dict.items %}
            <li><a target="_blank" href="{% url "detail_name" k %}">{{ v.name }}</a></li>
        {% endfor %}
    </ul>
</body>
</html>

到此,相信大家对“Django怎么配置使用”有了更深的了解,不妨来实际操作一番吧!这里是编程网网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

--结束END--

本文标题: Django怎么配置使用

本文链接: https://www.lsjlt.com/news/91087.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Django怎么配置使用
    本篇内容主要讲解“Django怎么配置使用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Django怎么配置使用”吧! 1. 准备工作   &nb...
    99+
    2022-10-19
  • django怎么配置mongodb集群
    要配置Django与MongoDB集群,您需要执行以下步骤:1. 安装MongoDB集群:首先,您需要在服务器上安装并配置Mongo...
    99+
    2023-08-23
    django mongodb
  • Django Session通用配置
    Django对于Session有一些默认的通用配置,这些默认配置为:SESSION_COOKIE_NAME == "sessionid"    &...
    99+
    2022-10-18
  • 怎么在Django中配置wsgi模块
    怎么在Django中配置wsgi模块?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。1、WSGI介绍Python Web Server Gateway Interface,翻...
    99+
    2023-06-14
  • Django项目怎么正确配置日志
    这篇文章将为大家详细讲解有关Django项目怎么正确配置日志,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。当Django项目正式部署上线后,我们需要设置DEBUG = False。这时开发者应怎样检查Dj...
    99+
    2023-06-14
  • Django怎么配置Mysql数据库连接
    这篇文章主要介绍“Django怎么配置Mysql数据库连接”,在日常操作中,相信很多人在Django怎么配置Mysql数据库连接问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Django怎么配置Mysql数据...
    99+
    2023-07-05
  • Django使用redis配置缓存的方法
    目录前言django应用redis缓存1.settings配置2.全站缓存3.视图函数缓存4.低级缓存5.session缓存对于非经常更新的服务器数据,若每次都从硬盘读取一次,会浪费...
    99+
    2022-11-12
  • django配置使用mysql数据库过程
    修改项目下setting.py文件下,DATABASES字典中的default字典中的内容:DATABASES = { 'default': { # 'ENGINE': 'django.db.backends.sqlit...
    99+
    2023-06-01
  • 怎么配置使用redis
    本篇内容主要讲解“怎么配置使用redis”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么配置使用redis”吧!Spring-data-redis为spring-data模块中对redis的支...
    99+
    2023-06-04
  • Django项目配置怎么实现拆分独立
    本篇内容介绍了“Django项目配置怎么实现拆分独立”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!Django 项目中,我们默认的配置是都在...
    99+
    2023-06-25
  • Django如何在配置中使用相对路径
    这篇文章主要介绍了Django如何在配置中使用相对路径,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。在配置中使用相对路径某些原因使得项目可能...
    99+
    2022-10-19
  • Django项目怎么配置连接多个数据库
    今天小编给大家分享一下Django项目怎么配置连接多个数据库的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。一个APP对应一个...
    99+
    2023-06-30
  • 使用PyCharm配合部署Python的Django框架的配置纪实
    安装软件 安装 Python 2.7、PyCharm、pip(Python包管理工具)、Django ( pip install Django) 部署 PyCharm 新建Django工程 完成后,其目...
    99+
    2022-06-04
    纪实 框架 PyCharm
  • kotlin怎么配置和使用
    这篇“kotlin怎么配置和使用”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“kotlin怎么配置和使用”文章吧。kotli...
    99+
    2023-06-27
  • PHPSTORM Xdebug怎么配置使用
    这篇文章主要讲解了“PHPSTORM Xdebug怎么配置使用”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“PHPSTORM Xdebug怎么配置使用”吧!原理简要简单 C/S 理解:一个客...
    99+
    2023-07-05
  • @RequestLine怎么使用及配置
    本篇内容介绍了“@RequestLine怎么使用及配置”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!@RequestLine的使用及配置@R...
    99+
    2023-07-02
  • windows aria2怎么使用配置
    这篇文章主要介绍“windows aria2怎么使用配置”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“windows aria2怎么使用配置”文章能帮助大家解决问题。aria2使用方法首先我们在网上...
    99+
    2023-07-02
  • ESLine怎么配置及使用
    本文小编为大家详细介绍“ESLine怎么配置及使用”,内容详细,步骤清晰,细节处理妥当,希望这篇“ESLine怎么配置及使用”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。环境:React,Webpack,Babe...
    99+
    2023-06-05
  • django channels使用、配置及实现群聊的方法
    这篇文章主要介绍“django channels使用、配置及实现群聊的方法”,在日常操作中,相信很多人在django channels使用、配置及实现群聊的方法问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法...
    99+
    2023-06-30
  • idea怎么使用外置tomcat配置springboot
    本篇内容介绍了“idea怎么使用外置tomcat配置springboot”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成! 创建一个m...
    99+
    2023-06-08
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作