Django快速安装以及创建我的第一个Django项目

  • 来源:网络
  • 更新日期:2020-07-10

摘要:建站服务器 特别说明:本文是针对Django 1.11和Python 3或更高版本编写的。如果Django版本不匹配,可跳过该文章,或者将您的Django更新到最新

建站服务器

特别说明:本文是针对Django 1.11和Python 3或更高版本编写的。如果Django版本不匹配,可跳过该文章,或者将您的Django更新到最新版本。

一、Django安装步骤

1、安装版本:

    Django1.11.1

    Django 下载地址:https://www.djangoproject.com/download/

2、支持的PYTHON版本

    django1.11以后不再支持python2.7 ,所以必须是python3版本上

3、安装python3+

    Python 下载地址:https://www.python.org/downloads/

4、安装PYTHON3+

    安装Python你只需要下载python-x.x.x.msi文件,然后一直点击Next按钮即可。

    安装完成后你需要设置Python环境变量。 右击计算机->属性->高级->环境变量->修改系统变量path,添加Python安装地址,本文实例使用的是C:\\Python34,你需要根据你实际情况来安装。

如果是linux系统请下载Python-3.x.x.tgz安装包自行安装。


5、Django 安装

 A、×××安装

   将Django 压缩包解压并和Python安装目录放在同一个根目录,进入 Django 目录,执行python setup.py install,然后开始安装,Django将要被安装到Python的Lib下site-packages。

C:\\Python34\\Lib\\site-packages

然后是配置环境变量,将这几个目录添加到系统环境变量中: C:\\Python33\\Lib\\site-packages\\django;C:\\Python33\\Scripts。 添加完成后就可以使用Django的django-admin.py命令新建工程了

检查是否安装成功

python -m django --version 或者,

>>> import django

>>> print django.get_version()

如果Django已经安装,你应该看到安装的版本。 如果还没有安装,你会看到一个“No module named django”的错误。

B、pip命令在线安装

    第一步需要安装pip命令

       下载pip命令,解压切换到pip文件夹,python setup.py install安装,然后就可以使用pip命令了。

        pip install Django==1.11.1

6、关于如何删除旧版本的Django并安装一个新的

如果要从以前的版本升级Django的安装,则需要在安装新版本之前卸载旧的Django版本

如果以前使用pip或easy_install安装了Django,则再次使用pip或easy_install安装会自动处理旧版本,所以你不需要自己做。


如果您以前使用python setup.py 安装安装了Django,卸载操作就像删除django目录从您的Python site-packages。

查找

$ python -c import sys; sys.path = sys.path[1:]; import django; print(django.__path__)

安装就到此结束了。


二、创建一个project

1、Creating a project

django-admin startproject mysite

注意:您将需要避免在内置Python或Django组件后命名项目。特别是,这意味着你应该避免使用像djangoDjango本身这样的名字 (或者test与内置的Python包冲突)


2、mysite项目中文件说明

mysite/

    manage.py

    mysite/

        __init__.py

        settings.py

        urls.py

        wsgi.py


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

manage.py:一个命令行实用程序,可以让您以各种方式与此Django项目进行交互。您可以阅读django-admin和manage.pymanage.py中的所有详细信息 。

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

mysite/__init__.py:一个空的文件,告诉Python这个目录应该被认为是一个Python包。如果您是Python初学者,请阅读官方Python文档中有关软件包的更多信息。

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

mysite/urls.py:该Django项目的URL声明; 您的Django动力网站的“目录”。您可以在URL调度程序中阅读有关URL的更多信息。

mysite/wsgi.py:WSGI兼容的Web服务器为您的项目提供服务的入口点。有关详细信息,请参阅如何使用WSGI进行部署。

3、开发服务器

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

$ python 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.


May 20, 2017 - 15:50:53

Django version 1.11, using settings \'mysite.settings\'

Starting development server at http://127.0.0.1:8000/

Quit the server with CONTROL-C.


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

现在服务器正在运行,请使用Web浏览器访问http://127.0.0.1:8000/。您会看到一个“欢迎来到Django”页面,在愉快的,浅蓝色的粉彩中。有效!


改变端口


默认情况下,该runserver命令在端口8000的内部IP上启动开发服务器。

如果要更改服务器的端口,请将其作为命令行参数传递。例如,此命令启动端口8080上的服务器:

$ python manage.py runserver 8080

如果要更改服务器的IP,请将其与端口一起传递。例如,要监听所有可用的公共IP(如果您正在运行Vagrant或想要在网络上的其他计算机上炫耀您的工作),请使用:

$ python manage.py runserver 0:8000

0是0.0.0.0的快捷方式。开发服务器的完整文档可以在参考文献中找到runserver。

自动重装 runserver

开发服务器根据需要自动为每个请求重新加载Python代码。您不需要重新启动服务器以使代码更改生效。但是,一些操作(如添加文件)不会触发重新启动,因此在这些情况下您必须重新启动服务器。


4、Creating the Polls app

现在,您的环境 - 一个“项目” - 已经建立起来,您将开始做工作。


您在Django中编写的每个应用程序都包含遵循一定约定的Python包。Django自带一个实用程序,可以自动生成应用程序的基本目录结构,因此您可以专注于编写代码而不是创建目录


您的应用程序可以生活在Python路径的任何位置。在本教程中,我们将在您的manage.py 文件旁边创建我们的投票应用程序,以便它可以作为自己的顶级模块导入,而不是子模块mysite。


要创建您的应用程序,请确保您与目录位于同一目录,manage.py 并键入以下命令:

$ python manage.py startapp polls


polls/

    __init__.py

    admin.py

    apps.py

    migrations/

        __init__.py

    models.py

    tests.py

    views.py


5、Write your first view

我们来写第一个看法。打开文件polls/views.py 并放入以下Python代码:

polls/views.py

from django.http import HttpResponse

def index(request):

    return HttpResponse(Hello, world. You\'re at the polls index.)

这是Django中最简单的视图。要调用视图,我们需要将其映射到一个URL , 为此,我们需要一个URLconf。

要在polls目录中创建一个URLconf,创建一个名为urls.py。您的应用目录应该如下所示:

polls/

    __init__.py

    admin.py

    apps.py

    migrations/

        __init__.py

    models.py

    tests.py

    urls.py

    views.py


在polls/urls.py文件中包含以下代码:

polls/urls.py

from django.conf.urls import url

from . import views

urlpatterns = [

    url(r\'^$\', views.index, name=\'index\'),

]


下一步是将根URLconf指向polls.urls模块。在 mysite/urls.py添加一条import用于django.conf.urls.include和插入include()的urlpatterns列表:

mysite/urls.py

from django.conf.urls import include, url

from django.contrib import admin


urlpatterns = [

    url(r\'^polls/\', include(\'polls.urls\')),

    url(r\'^admin/\', admin.site.urls),

]

该include()函数允许引用其他URLconfs。请注意,该include()函数的正则表达式 没有$(字符串匹配字符),而是尾部的斜杠。每当Django遇到 include()时,它会排除与该点匹配的任何部分,并将剩余的字符串发送到随附的URLconf进行进一步处理。


背后的想法include()是使即插即用的URL变得容易。由于polls是在自己的URLconf(polls/urls.py)中,它们可以被放置在“/ polls /”下面,或者在“/ fun_polls /”下面,或者在“/ content / polls /”或其他路径根目录下,工作。



6、何时使用 include()


include()当您包含其他网址格式时,您应始终使用。 admin.site.urls是唯一的例外。

不符合你的看法?


如果您只是看到,include(admin.site.urls)而 admin.site.urls您可能正在使用与本教程版本不符的Django版本。您将需要切换到较旧的教程或较新的Django版本。


您现在已将index视图连接到URLconf中。让它验证它的工作,运行以下命令:

$ python manage.py runserver


在浏览器中转到http:// localhost:8000 / polls /,您应该看到文本“ Hello,world ***”。


7、url()函数传递四个参数,两个必需:regex和view,和两个可选:kwargs,和name。在这一点上,值得审查这些论据。

url()参数:正则表达式

    术语“正则表达式”是一种常用的短格式,意思是“正则表达式”,它是用于匹配字符串中的模式的语法,或者在这种情况下是URL格式。Django从第一个正则表达式开始,并将其放在列表中,将请求的URL与每个正则表达式进行比较,直到找到匹配的一个。

请注意,这些正则表达式不搜索GET和POST参数或域名。例如,在请求中 https://www.example.com/myapp/,URLconf将寻找myapp/。在请求中https://www.example.com/myapp/?page=3,URLconf也会查找myapp/。

如果您需要正则表达式的帮助,请参阅re模块文档。实际上,您不需要是正则表达式的专家,因为您只需要知道如何捕获简单的模式。实际上,复杂的正则表达式的查找性能会很差,所以你可能不应该依靠正则表达式的全部功能。

最后,一个性能说明:这些正则表达式是第一次加载URLconf模块时被编译。它们超级快


url()参数:视图

当Django找到一个正则表达式匹配时,Django会调用指定的视图函数,其中一个HttpRequest对象作为第一个参数,任何来自正则表达式的“捕获”值作为其他参数。如果正则表达式使用简单的捕获,则值作为位置参数传递; 如果它使用命名捕获,则值作为关键字参数传递。我们稍后会给出一个例子。


url()参数:kwargs 

任意关键词参数可以在字典中传递到目标视图。我们不会在教程中使用Django的这个功能。


url()参数:名称

命名您的URL可让您从Django其他地方明确地引用它,特别是在模板中。这个强大的功能可让您全面更改项目的URL模式,同时只触摸单个文件。


8、Django 官方文档:

https://docs.djangoproject.com/en/1.11/



新网虚拟主机