使用pycharm创建Django项目[通俗易懂]

使用pycharm创建Django项目[通俗易懂]创建项目1.使用命令行创建项目如果这是你第一次使用Django的话,你需要一些初始化设置。也就是说,你需要用一些自动生成的代码配置一个Djangoproject——即一个Django项目实例需要的设置项集合,包括数据库配置、Django配置和应用程序配置。打开命令行,cd到一个你想放置你代码的目录,然后运行以下命令:django-adminstartprojectmysite#mysite是项目名这行代码将会在当前目录下创建一个mysite目录。如果命令失

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

创建项目

1. 使用命令行创建项目

如果这是你第一次使用 Django 的话,你需要一些初始化设置。也就是说,你需要用一些自动生成的代码配置一个 Django project —— 即一个 Django 项目实例需要的设置项集合,包括数据库配置、Django 配置和应用程序配置。

打开命令行,cd 到一个你想放置你代码的目录,然后运行以下命令:

django-admin startproject mysite    
#mysite是项目名

这行代码将会在当前目录下创建一个 mysite 目录。如果命令失败了,查看 运行django-admin时遇到的问题,可能能给你提供帮助。

避免使用 Python 或 Django 的内部保留字来命名你的项目。具体地说,避免使用像 django (会和 Django 自己产生冲突)或 test (会和 Python 的内置组件产生冲突)这样的名字。
我的代码该放在哪?
如果你曾经是原生 PHP 程序员(没有使用过现代框架),你可能会习惯于把代码放在 Web 服务器的文档根目录(诸如 /var/www)。当使用 Django 时不需要这样做。把所有 Python 代码放在 Web 服务器的根目录不是个好主意,因为这样会有风险。比如会提高人们在网站上看到你的代码的可能性。这不利于网站的安全。
把你的代码放在文档根目录 以外 的某些地方吧,比如 /home/mycode。

让我们看看 startproject 创建了些什么:

mysite/
    manage.py
    mysite/
        __init__.py
        settings.py
        urls.py
        wsgi.py

2. 使用 Pycharm 创建项目

file —> new project —- 选择Django —> 配置路径和项目名称 —> 配置环境(默认用系统环境) —-> 点击create(完成创建)
在这里插入图片描述
项目目录介绍

|---mysite # 项目的/目录 
  |---mysite # 项目目录 
      |---__init__.py 
      |---settings.py # 配置文件 
      |---urls.py # 路由系统 ===> url与视图的对应关系 
      |---wsgi.py # runserver命令就使用wsgiref模块做简单的web server
|---manage.py # 管理文件,是一个工具脚本,
                   #用作项目管理的。以后会使用它执行管理操作

在这里插入图片描述

  • wsgi.py(重要部分)
    要了解这个文件的作用, 我们必须明白wsgi 是什么意思
    python 组织制定了 web 服务网关接口(Web Server Gateway Interface) 规范 ,简称wsgi。参考文档 https://www.python.org/dev/peps/pep-3333/
    遵循wsgi规范的 web后端系统, 我们可以理解为 由两个部分组成
    wsgi web server 和 wsgi web application
    它们通常是运行在一个python进程中的两个模块,或者说两个子系统。
    wsgi web server 接受到前端的http请求后,会调用 wsgi web application 的接口( 比如函数或者类方法)方法,由wsgi web application 具体处理该请求。然后再把处理结果返回给 wsgi web server, wsgi web server再返回给前端。
    在这里插入图片描述
    为什么要搞出两个子系统,这么麻烦呢?
    因为这两个子系统有各自负责的重点。
    wsgi web server 负责 提供高效的http请求处理环境,可以使用多线程、多进程或者协程的机制。
    http 请求发送到 wsgi web server , wsgi web server 分配 线程或者进程或者 轻量级线程(协程),然后在 这些 线程、进程、或者协程里面,去调用执行 wsgi web application 的入口代码。
    wsgi web application 被调用后,负责 处理 业务逻辑。 业务逻辑的处理可能非常复杂, wsgi web application 需要精心的设计来正确处理。
    django是 wsgi web application 的框架,它只有一个简单的单线程 wsgi web server。 供调试时使用。
    产品正式上线运行的时候,通常我们需要高效的 wsgi web server 产品,比如 gunicorn,uwsgi,cherrypy等,结合Django ,组成一个高效的 后端服务。
    所以这个 wsgi.py 就是 提供给wsgi web server调用 的接口文件,里面的变量application对应对象实现了 wsgi入口,供wsgi web server调用 。

– 创建应用

使用命令行模式创建应用
在 Terminal 中输入 python manage.py startapp 应用名:

在这里插入图片描述
在这里插入图片描述

  • 使用 Pycharm 创建应用
    在这里插入图片描述
    注意:使用命令行创建的应用,一定要在 settings.py–>INSTALLED_APPS 中加入你的应用名字进行注册, 使用Pycharm创建的应用则不用。 认识应用结构
    在这里插入图片描述
    这些目录和文件的用处是:
  • 最外层的:file: mysite/ 根目录只是你项目的容器, Django 不关心它的名字,你可以将它重命名为任何你喜欢的名字。
  • manage.py: 一个让你用各种方式管理 Django 项目的命令行工具。你可以阅读 django-admin and
    manage.py 获取所有 manage.py 的细节。
  • 里面一层的 mysite/ 目录包含你的项目,它是一个纯 Python 包。它的名字就是当你引用它内部任何东西时需要用到的 Python包名。 (比如 mysite.urls).
  • mysite/init.py:一个空文件,告诉 Python 这个目录应该被认为是一个 Python 包。如果你是 Python初学者,阅读官方文档中的 更多关于包的知识。
  • mysite/settings.py:Django 项目的配置文件。如果你想知道这个文件是如何工作的,请查看 Django
    settings 了解细节。
  • mysite/urls.py:Django 项目的 URL 声明,就像你网站的“目录”。阅读 URL调度器 文档来获取更多关于 URL的内容。
  • mysite/wsgi.py:作为你的项目的运行在 WSGI 兼容的Web服务器上的入口。阅读 如何使用 WSGI 进行部署了解更多细节。

运行项目

django虽然只是 wsgi web application 的框架,但是它也有一个简单的 wsgi web server。 供调试时使用。
所以也构成一个完整的后端web服务。 本地调试代码的时候,完全可以运行起来。
运行开发web 服务只需要在命令行窗口里面
首先进入到项目根目录 ,比如,我们这里就是 d:\projects\bysms
然后执行如下命令

  1. 使用命令行运行项目:
python manage.py runserver 0.0.0.0:80

注意:要在 manage.py 同级目录执行命令。
在这里插入图片描述
这样服务就会被启动。 我们就可以在浏览器访问web服务了。
其中 0.0.0.0:80 是指定 web服务绑定的 IP 地址和端口。
0.0.0.0 表示绑定本机所有的IP地址, 就是可以通过任何一个本机的IP (包括 环回地址 127.0.0.1 ) 都可以访问我们的服务。
80 表示是服务启动在80端口上。
命令行显示如下:
在这里插入图片描述
请打开浏览器,地址栏输入 ‘127.0.0.1’ ,就可以看到如下的界面,表示Django服务搭建成功,启动成功。
也可以在地址栏键入Localhost或,168.0.1.100,如果提示以下错误,可以在settings.py文件中保存了 ‘127.0.0.1’ 、 Localhost 、192.168.1.103。
在这里插入图片描述
在这里插入图片描述

ipconfig查看本地还有那几个可用的地址
在这里插入图片描述
在这里插入图片描述

  1. Pycharm 启动项目
    点击右上角的绿色的三角按钮。
    如需更改配置信息,请下拉选择 edit configurations,进行配置。
    在这里插入图片描述
    如下图所示runserver 127.0.0.1:8000
    在这里插入图片描述
    配置完以上信息之后,直接按 Ctrl+shift+F10 运行一下 manage.py 文件。
    出现如下结果,表示配置成功。
    在这里插入图片描述
    你刚刚启动的是 Django 自带的用于开发的简易服务器,它是一个用纯 Python 写的轻量级的 Web 服务器。我们将这个服务器内置在 Django 中是为了让你能快速的开发出想要的东西,因为你不需要进行配置生产级别的服务器(比如 Apache)方面的工作,除非你已经准备好投入生产环境了。

现在是个提醒你的好时机:千万不要 将这个服务器用于和生产环境相关的任何地方。这个服务器只是为了开发而设计的。(我们在 Web 框架方面是专家,在 Web 服务器方面并不是。)

现在,服务器正在运行,浏览器访问 https://127.0.0.1:8000/。你将会看到一个“祝贺”页面,随着一只火箭发射,服务器已经运行了。

> 更换端口
>  默认情况下,runserver 命令会将服务器设置为监听本机内部 IP 的 8000 端口。
> 如果你想更换服务器的监听端口,请使用命令行参数。举个例子,下面的命令会使服务器监听 8080 端口:
   python manage.py runserver 8080
> 如果你想要修改服务器监听的IP,在端口之前输入新的。比如,为了监听所有服务器的公开IP
 (这你运行 Vagrant 或想要向网络上的其它电脑展示你的成果时很有用),使用:
   python manage.py runserver 0:8000
  00.0.0.0 的简写。完整的关于开发服务器的文档可以在 :djamdin:`runserver` 参考文档中找到。
会自动重新加载的服务器 runserver
用于开发的服务器在需要的情况下会对每一次的访问请求重新载入一遍 Python 代码。
所以你不需要为了让修改的代码生效而频繁的重新启动服务器。然而,一些动作,比如添加新文件,
将不会触发自动重新加载,这时你得自己手动重启服务器。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/172837.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 又是系统时间惹的祸 TreeView

    又是系统时间惹的祸 TreeView又是系统时间惹的祸 TreeView

    2022年4月22日
    50
  • 我为什么放弃Go语言

    我为什么放弃Go语言我为什么放弃Go语言?有好几次,当我想起来的时候,总是会问自己:这个决定是正确的吗?是明智和理性的吗?其实我一直在认真思考这个问题。开门见山地说,我当初放弃Go语言,就是因为两个“不爽”:第一,对Go语言本身不爽;第二,对Go语言社区里的某些人不爽。毫无疑问,这是非常主观的结论,但是我有足够详实的客观的论据。

    2022年6月30日
    15
  • CSS3 background-size图片自适应

    CSS3 background-size图片自适应

    2021年9月21日
    46
  • 长轮询的使用实现_长轮询和短轮询

    长轮询的使用实现_长轮询和短轮询轮询(Polling):是指不管服务器端有没有更新,客户端(通常是指浏览器)都定时的发送请求进行查询,轮询的结果可能是服务器端有新的更新过来,也可能什么也没有,只是返回个空的信息。不管结果如何,客户端处理完后到下一个定时时间点将继续下一轮的轮询。长轮询(LongPolling):长轮询的服务其客户端是不做轮询的,客户端在发起一次请求后立即挂起,一直到服务器端有更新的时候,服务器才会主动推送信息到…

    2025年6月17日
    0
  • php 动静分离原理,nginx动静分离的好处

    php 动静分离原理,nginx动静分离的好处动静分离是将网站静态资源(HTML,JavaScript,CSS,img等文件)与后台应用分开部署,提高用户访问静态代码的速度,降低对后台应用访问。动静分离的一种做法是将静态资源部署在nginx上,后台项目部署到应用服务器上,根据一定规则静态资源的请求全部请求nginx服务器,达到动静分离的目标。nginx动静分离的好处api接口服务化:动静分离之后,后端应用更为服务化,只需要通过提供api接口即…

    2022年5月27日
    42
  • js中map遍历数组对象_js遍历数组

    js中map遍历数组对象_js遍历数组forEach()和map()都是遍历数组的方法,用法类似,但是还是有很大区别:相同点:      1.都是循环遍历数组中的每一项;      2.在遍历中执行匿名函数都可以接收三个参数,分别为:遍历过程的每一项、遍历序号(索引值)、原数组;      3.执行的匿名函数中的this都指向window。  不同点:      map():      根据遍历执行的匿名函数,对于原数…

    2022年9月2日
    3

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号