安装Django框架及Hello World

一、安装Django框架

基于virtualenv创建虚拟环境,远离繁琐python版本管理问题

Mac:python eword$  mkdir HelloWorld    //创建HelloWorld项目文件夹
Mac:HelloWorld eword$ cd HelloWorld       
Mac:HelloWorld eword$ virtualenv -p /usr/local/bin/python3 py3env     //用virtualenv创建名为py3env的虚拟环境
Mac:HelloWorld eword$ source py3env/bin/activate                      //进入虚拟环境

//安装Django框架,也可以带上版本号pip install django==1.11.11 
//注意命令行多了个(py3env) 表示当前再(py3env) 虚拟环境下执行python命令
(py3env) Mac:HelloWorld eword$ pip install django

执行结果

Looking in indexes: http://…………………………………………/repository/pypi-public/simple/
Collecting Django
  Downloading http://…………………………………………/repository/pypi-public/packages/50/22/4c91847beceadbb54b5a518909ed5000bb1777168c7d6b087e8f79e5e05b/Django-3.1.2-py3-none-any.whl (7.8 MB)
     |████████████████████████████████| 7.8 MB 476 kB/s 
Collecting sqlparse>=0.2.2
  Downloading http://…………………………………………/repository/pypi-public/packages/14/05/6e8eb62ca685b10e34051a80d7ea94b7137369d8c0be5c3b9d9b6e3f5dae/sqlparse-0.4.1-py3-none-any.whl (42 kB)
     |████████████████████████████████| 42 kB 16.6 MB/s 
Collecting asgiref~=3.2.10
  Downloading http://…………………………………………/repository/pypi-public/packages/d5/eb/64725b25f991010307fd18a9e0c1f0e6dff2f03622fc4bcbcdb2244f60d6/asgiref-3.2.10-py3-none-any.whl (19 kB)
Collecting pytz
  Downloading http://…………………………………………/repository/pypi-public/packages/4f/a4/879454d49688e2fad93e59d7d4efda580b783c745fd2ec2a3adf87b0808d/pytz-2020.1-py2.py3-none-any.whl (510 kB)
     |████████████████████████████████| 510 kB 14.1 MB/s 
Installing collected packages: sqlparse, asgiref, pytz, Django
Successfully installed Django-3.1.2 asgiref-3.2.10 pytz-2020.1 sqlparse-0.4.1

二、创建HelloWorld项目

2.1、使用 django-admin 来创建一个新项目

(py3env) Mac:HelloWorld eword$ django-admin startproject HelloWorld

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

.
├── HelloWorld            //项目的容器。
│   ├── __init__.py       //一个空文件,告诉 Python 该目录是一个 Python包。
│   ├── asgi.py
│   ├── settings.py       //该 Django 项目的配置,包含了项目的默认设置,包括数据库信息,调试标志以及其他一些工作的变量
│   ├── urls.py             //该 Django 项目的 URL 路径目录,负责把URL模式映射到应用程序。
│   └── wsgi.py           //一个 WSGI 兼容的 Web 服务器的入口,以便运行你的项目。
└── manage.py             //一个实用的命令行工具,可让你以各种方式与该 Django项目进行交互。

2.2、使用PyCharm打开创建的新项目

这里使用的是控制创建虚拟环境和项目,然后使用IDE打开,这样比较通用,当然我们也可以直接通过PyCharm使用virtualenv创建虚拟环境和创建HelloWorld项目(详见系列其他文章

文件->打开 选择 HelloWorld/HelloWorld文件夹

2.2.1、修改解析器配置

设置->项目->Pythone解析器 添加并选择刚刚创建的py3env虚拟环境解析器

截屏2020-10-22 18.49.27

2.2.2、启动服务

2.2.2.1、使用命令启动服务

在HelloWorld目录中通过以下命令启动服务器:

(py3env) Mac:HelloWorld eword$ python manage.py runserver

指定端口启动服务器:

(py3env) Mac:HelloWorld eword$ python manage.py runserver 8080

注意: 不指定端口号启动的话,默认端口8000

2.2.2.2、使用PyCharm启动服务

直接使用播放键按钮启动服务,需要确认一下Python解析器是否配置正确,然后点击运行按钮,启动服务。

image-20201022192900118

2.2.2.3、浏览器打开Web
# http://本机IP:启动端口
http://127.0.0.1:8000/

三、创建应用(App=appliction)

(py3env) Mac:HelloWorld eword$ python manage.py startapp blog

创建完App后我们可以查看下项目的目录结构,发现多了个blog文件夹

.
├── HelloWorld
│   ├── __init__.py
│   ├── __pycache__
│   │   ├── __init__.cpython-37.pyc
│   │   ├── settings.cpython-37.pyc
│   │   ├── urls.cpython-37.pyc
│   │   └── wsgi.cpython-37.pyc
│   ├── asgi.py
│   ├── settings.py
│   ├── urls.py
│   └── wsgi.py
├── blog
│   ├── __init__.py                    //一个空文件,告诉 Python 该目录是一个 Python包。
│   ├── admin.py            //后台管理站点的配置
│   ├── apps.py                            //用来配置当前APP模块的相关信息
│   ├── migrations                    //存放数据库的迁移文件
│   │   └── __init__.py
│   ├── models.py                        //用来存放当前APP模块的数据库模型
│   ├── tests.py
│   └── views.py                        //当前APP模块的业务逻辑
├── db.sqlite3              //默认使用的SQLlite数据库
└── manage.py

3.1、在settings.py加入blog应用模块配置

.
├── HelloWorld
│   ├── settings.py     <----

在settings.py中找到INSTALLED_APPS配置项

# Application definition

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'blog',              //添加此行,注意要有逗号
]

3.2、视图配置

├── blog
│   └── views.py                        //当前APP模块的业务逻辑

在创建的 blog 应用模块目录中的 views.py 文件输入代码:

from django.shortcuts import render

# Create your views here.

from django.http import HttpResponse


def hello(request):
    return HttpResponse("Hello World!!!")

3.3、Url配置

├── HelloWorld            
│   ├── urls.py             //该 Django 项目的 URL 路径目录,负责把URL模式映射到应用程序。

在HelloWorld 目录下的HelloWorld 目录中的urls.py文件中添加下面代码:

from django.contrib import admin
from django.urls import path
from blog import views                  <---加入的第一行

urlpatterns = [
    path('admin/', admin.site.urls),
    path('hello/', views.hello),         <---加入的第二行,注意逗号
]

url的另一种配置形式:

在blog模块目录下新建urls.py文件,并添加如下代码

from django.urls import path
from blog import views

urlpatterns = [
    path('hello/', views.hello),
]

然后在HelloWorld/urls.py中引用 blog/urls.py

from django.contrib import admin
from django.urls import path, include     <---注意此处的include
from blog import views

urlpatterns = [
    path('admin/', admin.site.urls),
    path('hello/', views.hello),
    path('blog/', include('blog.urls')),   <---引入blog/urls.py
]

然后启动django开发服务器后,用浏览器打开如下地址

http://127.0.0.1:8000/blog/hello/

就能得到和访问 http://127.0.0.1:8000/hello/ 一样的结果

3.4、访问HelloWorld

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

http://127.0.0.1:8000/hello/

image-20201022200549686

results matching ""

    No results matching ""