首页 > 其他分享 >Django的安装与运行

Django的安装与运行

时间:2023-07-20 20:55:11浏览次数:29  
标签:return py Django func HttpResponse path 安装 运行

  Django 是一个由 Python 编写的一个开放源代码的 Web 应用框架。使用 Django,只要很少的代码,Python 的程序开发人员就可以轻松地完成一个正式网站所需要的大部分内容,并进一步开发出全功能的 Web 服务 Django 本身基于 MVC 模型,即 Model(模型)+ View(视图)+ Controller(控制器)设计模式,MVC 模式使后续对程序的修改和扩展简化,并且使程序某一部分的重复利用成为可能。

1. 安装

  安装分为在线安装与离线安装。在此之前,我们应该已经安装好了python3,并配置好了python的环境变量。

  在线安装:pip install Django -i  https://pypi.tuna.tsinghua.edu.cn/simple/

  离线安装: 比如下载Django-3.2.20.tar.gz,解压(windows下需要下载rar或者7zip等解压工具),然后使用python setup.py install全局安装。后面使用python -m django --version时报错了,使用pip show Django正常。这里我放弃了离线安装,因为在线安装更简单,问题少。

 

2. 查看Django版本

  python -m django --version

       或pip show Django

3. 创建Django项目

  使用 django-admin startproject 项目名 创建项目。(Django-admin是命令行管理工具,用于对项目执行某些命令操作。)

  可以在cmd中或者在pycharm的terminal中输入命令创建项目,我这里创建了一个HelloWorld。

 

 

4. 项目结构

  创建好后,会出现两个HelloWorld以及其他一些文件。

  目录说明:

  • HelloWorld: 项目的容器,也是根目录。
  • manage.py: 一个实用的命令行工具,可让你以各种方式与该 Django 项目进行交互。
  • HelloWorld/__init__.py: 这里表示是内层的HelloWorld/__init__.py是一个空文件,告诉 Python 该目录是一个 Python 包。
  • HelloWorld/asgi.py: 一个 ASGI 兼容的 Web 服务器的入口,以便运行你的项目。
  • HelloWorld/settings.py: 该 Django 项目的设置/配置。
  • HelloWorld/urls.py: 该 Django 项目的 URL 声明; 一份由 Django 驱动的网站"目录"。
  • HelloWorld/wsgi.py: 一个 WSGI 兼容的 Web 服务器的入口,以便运行你的项目。

5. 运行项目

  python manage.py runserver

  或者python3manage.py runserver 0.0.0.0:8000,这种方法表示0.0.0.0 让其它电脑可连接到开发服务器,8000 为端口号。如果不说明,那么端口号默认为 8000。

  说明启动正常,如果不想每次输入命令,可以如下:

  添加runserver。后面就可以在manage.py上右键运行了。

 

 

6. 浏览器测试

  启动浏览器,然后在地址栏输入http:127.0.0.1:8000

 

  可以更改settings文件,将LANGUAGE_CODE = 'en-us'改为LANGUAGE_CODE = 'zh-hans',网页由英文变成中文。时区TIME_ZONE也可以配置为TIME_ZONE='Asia/Shanghai'

 

  到这里表明正常配置并启动了Django了。

7. 编写试图

from django.http import HttpResponse
def article(request,id):
    print(id)
    print(type(id))
    return HttpResponse(f'文章详情{id}号')
    # return HttpResponse('wenzhangxiangqing')

def user_func(request,name):
    return HttpResponse(f"用户名是{name}!!!")

def hello(request):
    print('hello')
    return HttpResponse('<p><a href="/article/18.html">根相对路径</a> <a href="article/19.html">相对路径</a></p>')
def path_func(request,path):
    print(path)
    return  HttpResponse(f"{path}")

#8-4-4-4-12
#uuid 12345678-1234-1234-1234-012345678901
def uuid_func(request,uuid):
    print(f"{uuid}")
    return HttpResponse(uuid)
def slug_func(request,s):
    return HttpResponse(f"{s}")

def search_func(request,year,month):
    return HttpResponse(f"{year}年{month}月")

def index(request):
    html="""
        <html>
        <head>
            <title>Django route</title>
        </head>
        <body>
            <ul>
                <li><a href="/hello">hello</a></li>
                <li><a href="/article/13.html">文章</a></li>
                <li><a href="/user/wangxi">用户信息</a></li>
                <li><a href="/book/12345678-1234-1234-1234-123456789012">uuid</a></li>
                <li><a href="/search/7/20">月日</a></li>
            </ul>
        </body>
        </html>
    """
    return HttpResponse(html)

def test_func(request):
    return HttpResponse("<h1>test</h1>")

  这里写了很多函数,用于测试不同的路由。

  改写urls.py文件,添加路由及路由对应的调用的视图函数。

from . import views

from django.contrib import admin
from django.urls import path

urlpatterns = [
    path('admin/', admin.site.urls),#创建工程自带的,显示的D有jango图的首页
    path('/test',views.test_func),#http://127.0.0.1:8000//test   //才可以
    path('hello/', views.hello),
    # path('article/<int:id>',article)
    path('article/<int:id>.html',views.article),
    path('user/<str:name>',views.user_func),
    path('detail/<path:path>',views.path_func),
    path('book/<uuid:uuid>',views.uuid_func),
    path('match/<slug:s>',views.slug_func),
    path('search/<int:year>/<int:month>',views.search_func),
    path('',views.index),
]

  这里简单说一下逻辑:

   现在我们直接在浏览器里输入http:127.0.0.1:8000/user/Tom

   注意,这里user/Tom与代码中的user/<str:name>保持一致,user后面为字符串,否则报错。若是<int:name>,则user/数字。

  代码中由path函数,函数 path() 具有四个参数,两个必须参数:route 和 view,两个可选参数:kwargs 和 name。

  path() 参数: route

  route 是一个匹配 URL 的准则(类似正则表达式)。当 Django 响应一个请求时,它会从 urlpatterns 的第一项开始,按顺序依次匹配列表中的项,直到找到匹配的项。

  这些准则不会匹配 GET 和 POST 参数或域名。例如,URLconf 在处理请求 https://www.example.com/myapp/ 时,它会尝试匹配 myapp/ 。处理请求    https://www.example.com/myapp/?page=3 时,也只会尝试匹配 myapp/。

  path() 参数: view

  当 Django 找到了一个匹配的准则,就会调用这个特定的视图函数,并传入一个 HttpRequest 对象作为第一个参数,被“捕获”的参数以关键字参数的形式传入。稍后,我们会给出一个例子。

  path() 参数: kwargs

  任意个关键字参数可以作为一个字典传递给目标视图函数。

  path() 参数: name

为你的 URL 取名能使你在 Django 的任意地方唯一地引用它,尤其是在模板中。这个有用的特性允许你只改一个文件就能全局地修改某个 URL 模式。

 

小结:本文对Django进行了安装并运行了一个简单的Django项目,但本文并未对settings.py文件,urls.py文件做更多的讲解,没有对path函数做过多的讲述。如需详细了解请自行查阅资料。另外,在path中的url如果重名,则浏览器访问时,按照由前往后顺序查找,匹配后,后面的重名的不再匹配。

 

  不足或错误之处欢迎之处与评论!

标签:return,py,Django,func,HttpResponse,path,安装,运行
From: https://www.cnblogs.com/wancy/p/17569092.html

相关文章

  • MySql 8.0 安装和启动
    1、开发环境:Window10+mysql-8.0.33-win642、下载压缩包+解压(网上找适合自己的版本)3、创建my.ini文件 文件内容:注意安装目录[client]#设置mysql客户端默认字符集default-character-set=utf8[mysqld]#设置3306端口port=3306#设置mysql的安装目录basedir=F:......
  • Linux系统安装CH341驱动
    Linux系统安装CH341驱动Linux系统(这里以ubuntu20.04为例)本身会自动安装CH340驱动,随着时间的推移,旧版本的驱动已经无法支持当下的CH340模块,所以我们需要重新安装驱动。以下是安装驱动的步骤:一、下载驱动包前往官网下载压缩包:Linux版CH341驱动;点击“下载”按钮即可二、解压......
  • Django入门
    Django入门学习1搭建web站点及业务框架1安装Django方法:1终端输入命令:pipinstalldjango2在python解释器中添加,步骤如下如果遇到速度比较慢的状况,可以加入国内阿里云镜像站点来安装:pipinstall-ihttps://mirrors.aliyun.com/pypi/simpledjango2创建了一个名为my......
  • SketchUp Pro 2023 下载和安装教程
    SketchUpPro2023下载和安装教程下载链接123云盘:https://www.123pan.com/s/JyAKVv-NTXB.html安装教程演示操作系统:Windows11*安装前请关闭所有杀毒软件,避免报错1.解压【SketchUpPro2023.zip】 2.运行【Setup.exe】安装程序 3.点击【Next】 4.点击【Change.........
  • OpenStack安装失败
    OpenStack安装失败的解决方法作为一名经验丰富的开发者,我很高兴能够帮助到你解决OpenStack安装失败的问题。在开始解决问题之前,让我们先了解一下整个安装过程的流程,并逐步介绍每个步骤需要做什么以及所需的代码。安装流程根据我的经验,OpenStack的安装一般分为以下几个步骤:步......
  • ubuntu20安装orbslam3 ros版本
    使用ubuntu20自带的opencv4.2似乎没有任何问题sudoaptinstalllibcanberra-gtk-modulelibcanberra-gtk3-module-ysudoapt-getinstallpython3-pipsudopip3installrosdepcsudorosdepcinitrosdepcupdatesed-i's/++11/++14/g'CMakeLists.txt增加:${PROJECT_SOURCE_DI......
  • Windows下spark能运行但打不开spark-shell
    解决Windows下spark能运行但打不开spark-shell问题作为一名经验丰富的开发者,我将教你解决Windows下spark能够运行但无法打开spark-shell的问题。下面是整个解决流程,可以通过表格的形式展示步骤:步骤操作步骤1检查Java环境变量步骤2检查Hadoop环境变量步骤3检......
  • Ubuntu安装Redis并设置开机启动
    Ubuntu安装Redis并设置开机启动1.简介在这篇文章中,我将教会你如何在Ubuntu操作系统上安装Redis,并设置Redis开机启动。Redis是一个开源的内存数据结构存储系统,常用于缓存、消息队列和会话存储。通过本文的步骤,你将能够轻松地安装Redis,并确保它在系统启动时自动运行。2.安装Redi......
  • Ubuntu18.04 anaconda安装python
    Ubuntu18.04下Anaconda的安装与Python环境配置介绍Anaconda是一个开源的Python和R语言的发行版本,用于数据科学、机器学习和人工智能等领域的开发和部署。本文将介绍如何在Ubuntu18.04上安装Anaconda,并配置Python环境。步骤1:下载Anaconda首先,我们需要从Anaconda的......
  • windows64位配置安装python2.7
    1、下载python安装包在python官网进行下载https://www.python.org/downloads/ 我这里下载的是2.7.9的,当然你也可以下载最新的: 安装比较简单,只需要下一步...就行。2、添加Python的系统路径在“系统变量”中的“系统变量”里面的path中,添加你的pytho......