当前位置: 首页 > 文档资料 > Python 全栈 >

第一步 项目的创建与运行

优质
小牛编辑
133浏览
2023-12-01

第一步:项目的创建与运行

(1). 创建项目

如果这是你第一次使用Django,那么你必须要照顾一些初始设置。也就是说,您需要自动生成一些建立Django 项目的代码

从命令行cd到您要存储代码的目录,然后运行以下命令:

$ django-admin startproject myweb

我们来看看startproject创建的内容:

[root@localhost myweb]# tree
.
├── manage.py
└── myweb
    ├── __init__.py
    ├── settings.py
    ├── urls.py
    └── wsgi.py

关于上面自动生成的目录与文件解释如下:

  • 外部myweb/根目录只是一个项目的容器。它的名字与Django无关; 您可以将其重命名为您喜欢的任何内容。

  • manage.py:一个命令行实用程序,可以让您以各种方式与此Django项目进行交互。你可以阅读所有的细节 manage.py在Django的管理和manage.py。

  • 内部myweb/目录是您的项目的实际Python包。它的名字是您需要用来导入其中的任何内容的Python包名称(例如myweb.urls)。

  • myweb/init.py:一个空的文件,告诉Python这个目录应该被认为是一个Python包。

  • myweb/settings.py:此Django项目的设置/配置。 Django设置会告诉你所有关于设置的工作原理。

  • myweb/urls.py:该Django项目的URL声明; 您的Django动力网站的“目录”。

  • myweb/wsgi.py:WSGI兼容的Web服务器为您的项目提供服务的入口点。

(2). 运行开发服务器

我们来验证您的Django项目的作品。更改为外部myweb目录,如果您还没有,并运行以下命令:

$ python manage.py runserver

注:若当前环境中有两个python环境,可使用python3或python3.6命令来调用3.6的环境,如:
$ python3 manage.py runserver

您将在命令行中看到以下输出:

Performing system checks...

System check identified no issues (0 silenced).

You have unapplied migrations; your app may not work properly until they are applied.
Run 'python manage.py migrate' to apply them.(注意:现在忽略关于未执行应用数据库迁移的警告)

August 07, 2017 - 15:50:53
Django version 1.11, using settings 'myweb.settings'
Starting development server at http://127.0.0.1:8000/
Quit the server with CONTROL-C.

以上说明已经开始使用Django的开发服务器,这是一个纯粹以Python编写的轻量级Web服务器。 我们将其与Django结合在一起,因此您可以快速开发,而无需处理配置生产服务器(如Apache),直到您准备好生产。

默认情况下,该runserver命令在端口8000的内部IP上启动开发服务器。当然也可以指定端口开启服务,如8080端口:

$ python manage.py runserver 8080

如果要更改服务器的IP,请将其与端口一起传递。例如:

$ python manage.py runserver 0:8000

注意:通过IP访问后报如下错误:

    DisallowedHost at /polls
    Invalid HTTP_HOST header: '192.168.*.*:8000'. You may need to add '192.168.*.*' to ALLOWED_HOSTS.

    HTTP_HOST标头无效:'192.168.*.*:8000'。您可能需要将“192.168.*.*”添加到ALLOWED_HOSTS
    如:ALLOWED_HOSTS = ['192.168.104.240']
    或:ALLOWED_HOSTS = ['192.168.104.240','localhost','127.0.0.1']
    或支持所有 ALLOWED_HOSTS = ['*']