小白从头开始编写第一个Django的Hello World(Mac)

    xiaoxiao2021-04-12  33

    为什么要选Django?

    Django考虑了很多在Web编程中会遇到的麻烦,因此你可以专注于编写应用层面的逻辑,而不用考虑太多Web问题。Django是免费且开源的。快速开发功能完善:Django包含数十个附加功能,可用于处理常见的Web开发任务。 Django负责用户验证,内容管理,站点地图,RSS订阅和更多的任务 - 开箱即用。安全可靠:Django认真对待安全性,帮助开发人员避免许多常见的安全错误,例如SQL注入,跨站点脚本,跨站点请求伪造和点击劫持。其用户认证系统提供了一种管理用户帐户和密码的安全方式。 可伸缩性:最繁忙的一些站点也使用Django快速灵活地扩展以满足最重的负载。 跨平台应用:从内容管理系统、社交网络到数据处理平台等,不同应用产品的公司都在使用Django。

    安装

    首先检查是否已经有python:

    Python 2.7.10 (default, Feb 6 2017, 23:53:20) [GCC 4.2.1 Compatible Apple LLVM 8.0.0 (clang-800.0.34)] on darwin Type "help", "copyright", "credits" or "license" for more information.

    嗯,已经有了!


    然后安装anaconda

    anaconda下载链接

    下载完成之后,在终端进入下载路径,并输入:

    bash Anaconda2-4.3.1-MacOSX-x86_64.sh

    然后就是一堆的协议确认,以及安装路径确认。

    For this change to become active, you have to open a new terminal. Thank you for installing Anaconda2! Share your notebooks and packages on Anaconda Cloud! Sign up for free: https://anaconda.org

    嗯,安装成功!

    在终端输入conda,检查一下:

    localhost:downloads yingxi$ conda usage: conda [-h] [-V] command ... conda is a tool for managing and deploying applications, environments and packages. Options: positional arguments: command info Display information about current conda install. help Displays a list of available conda commands and their help strings. list List linked packages in a conda environment. search Search for packages and display their information. The input is a Python regular expression. To perform a search with

    最后安装Django

    >>>conda install Django

    完成:

    django-1.10.5- 100% |################################| Time: 0:00:10 365.72 kB/s conda-4.3.16-p 100% |################################| Time: 0:00:00 1.20 MB/s

    创建第一个Django程序

    Python 2.7.10 Django 1.10.5

    django-admin.py

    安装 Django 之后,您现在应该已经有了可用的管理工具 django-admin.py。我们可以使用 django-admin.py 来创建一个项目: 我们可以来看下django-admin.py的命令介绍:

    [root@solar ~]# django-admin.py Usage: django-admin.py subcommand [options] [args]

    Options: -v VERBOSITY, –verbosity=VERBOSITY Verbosity level; 0=minimal output, 1=normal output, 2=verbose output, 3=very verbose output –settings=SETTINGS The Python path to a settings module, e.g. “myproject.settings.main”. If this isn’t provided, the DJANGO_SETTINGS_MODULE environment variable will be used. –pythonpath=PYTHONPATH A directory to add to the Python path, e.g. “/home/djangoprojects/myproject”. –traceback Raise on exception –version show program’s version number and exit -h, –help show this help message and exit

    Type ‘django-admin.py help ’ for help on a specific subcommand.

    Available subcommands:

    [django] check cleanup compilemessages createcachetable ……省略部分……


    创建第一个项目

    使用 django-admin.py 来创建 HelloWorld 项目:

    django-admin.py startproject HelloWorld

    创建完成后我们可以查看下项目的目录结构:

    $ cd HelloWorld/ $ tree . |-- HelloWorld | |-- __init__.py | |-- settings.py | |-- urls.py | `-- wsgi.py `-- manage.py

    目录说明:

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

    接下来我们进入 HelloWorld 目录输入以下命令,启动服务器(本地作为服务器):

    python manage.py runserver 0.0.0.0:8000

    【注意这里的runserver只适用于测试开发阶段,他会实时扫描项目更新,对,当我们修改了代码之后不用每次重启,但是它不适用于产品应用】0.0.0.0 让其它电脑可连接到开发服务器,8000 为端口号。如果不说明,那么端口号默认为 8000。 在浏览器输入你服务器的ip及端口号,如果正常启动,输出结果如下:


    视图和 URL 配置

    在先前创建的 HelloWorld 目录下的 HelloWorld 目录新建一个 view.py 文件,并输入代码

    HelloWorld/HelloWorld/view.py 文件代码: from django.http import HttpResponse def hello(request): return HttpResponse("Hello world ! ")

    接着,绑定 URL 与视图函数。打开 urls.py 文件,删除原来代码,将以下代码复制粘贴到 urls.py 文件中

    HelloWorld/HelloWorld/urls.py 文件代码: from django.conf.urls import url from . import view urlpatterns = [ url(r'^$', view.hello), ]

    整个目录结构如下:

    $ tree . |-- HelloWorld | |-- __init__.py | |-- __init__.pyc | |-- settings.py | |-- settings.pyc | |-- urls.py # url 配置 | |-- urls.pyc | |-- view.py # 添加的视图文件 | |-- view.pyc # 编译后的视图文件 | |-- wsgi.py | `-- wsgi.pyc `-- manage.py

    完成后,启动 Django 开发服务器,并在浏览器访问打开浏览器并访问:

    我们也可以修改以下规则:

    HelloWorld/HelloWorld/urls.py 文件代码: from django.conf.urls import url from . import view urlpatterns = [ url(r'^hello$', view.hello), ]

    通过浏览器打开 http://127.0.0.1:8000/hello,输出结果如下:

    注意:项目中如果代码有改动,服务器会自动监测代码的改动并自动重新载入,所以如果你已经启动了服务器则不需手动重启。


    url() 函数 Django url() 可以接收四个参数,分别是两个必选参数:regex、view 和两个可选参数:kwargs、name,接下来详细介绍这四个参数。

    regex: 正则表达式,与之匹配的 URL 会执行对应的第二个参数 view。 view: 用于执行与正则表达式匹配的 URL 请求。kwargs: 视图使用的字典类型的参数。 name: 用来反向获取 URL。

    regex: regular expression的缩写,用于匹配正则表达式。它不会关系Get或者Post请求带的参数:

    https://www.example.com/myapp/, URLconf会匹配并寻找myapp/. https://www.example.com/myapp/?page=3, URLconf也会匹配寻找myapp/

    正则表达式的使用是特别快的,因为它在URLconf第一次加载的时候被编译。

    view: 当Django成功匹配到一个正则表达式的时候,就会调用view中的一个函数。

    name: 将URL命名可以使得在改变URL路径是不用改变其余代码。


    建立数据库

    默认配置使用SQLite,SQLite已经在Python中,因此我们不需要安装任何其他的东西。不过真正开发时,我们可能需要切换其他具有扩展性的数据库例如PostgreSQL。 默认的数据库配置,如果需要更换数据库,需要更改default:

    DATABASES = { 'default': { 'ENGINE': 'django.db.backends.sqlite3', 'NAME': os.path.join(BASE_DIR, 'db.sqlite3'), } }

    更改:

    ENGINE – ‘django.db.backends.sqlite3’, ‘django.db.backends.postgresql’, ‘django.db.backends.mysql’, ‘django.db.backends.oracle’. 等 NAME – 数据库的名字。如果使用默认的SQLite,数据库会被当作一个文件存储在电脑上,此时NAME应该是完整的路径,包括路径和文件名。 The default value, os.path.join(BASE_DIR, ‘db.sqlite3’), will store the file in your project directory.

    当我们要更改模型时,注意一定要依次执行以下三步骤:

    Change your models (in models.py). Run python manage.py makemigrations;to create migrations for those changes Run python manage.py migrate ;toapply those changes to the database.

    migrate和sqlmigrate是不一样的,sqlmigrate并不会真正执行migrate。而是显示有哪些sql操作被执行了。

    转载请注明原文地址: https://ju.6miu.com/read-667688.html

    最新回复(0)