安装Django
确保已安装python3及pip
用pip3 安装Django-3.0.7(最新的正式版本)
sudo pip3 install Django==3.0.7
安装 Django 之后,现在Django目录下应该已经有了可用的管理工具 django-admin.py。
Django创建第一个项目
进入Django安装目录
cd ./python3.7/site-packages/django
新建一个项目testLocalHost
sudo django-admin.py startproject testLocalHost
在testLocalHost目录下启动服务器
cd ./python3.7/site-packages/django/bin/testLocalHost
sudo python3 manage.py runserver
执行结果:
Performing system checks...
System check identified no issues (0 silenced).
You have 17 unapplied migration(s). Your project may not work properly until you apply the migrations for app(s): admin, auth, contenttypes, sessions.
Run 'python manage.py migrate' to apply them.
June 08, 2020 - 07:04:19
Django version 3.0.7, using settings 'testLocalHost.settings'
Starting development server at http://127.0.0.1:8000/
Quit the server with CONTROL-C.
[08/Jun/2020 07:07:26] "GET / HTTP/1.1" 200 16351
[08/Jun/2020 07:07:26] "GET /static/admin/css/fonts.css HTTP/1.1" 200 423
[08/Jun/2020 07:07:26] "GET /static/admin/fonts/Roboto-Regular-webfont.woff HTTP/1.1" 200 85876
[08/Jun/2020 07:07:26] "GET /static/admin/fonts/Roboto-Light-webfont.woff HTTP/1.1" 200 85692
[08/Jun/2020 07:07:26] "GET /static/admin/fonts/Roboto-Bold-webfont.woff HTTP/1.1" 200 86184
Not Found: /favicon.ico
[08/Jun/2020 07:07:26] "GET /favicon.ico HTTP/1.1" 404 1979
成功,浏览器输入http://127.0.0.1:8000/可以看到:
视图和URL配置
在创建好的testLocalHost目录下的testLocalHost目录新建一个views.py文件,并输入代码:
from django.http import HttpResponse
def hello(request):
return HttpResponse("Hello World!")
接着,绑定 URL 与视图函数。打开 urls.py 文件,删除原来代码,将以下代码复制粘贴到 urls.py 文件中:
from django.conf.urls import url
from . import views
urlpatterns = [
url(r'^$', views.hello),
]
整个目录结构如下:
$ tree
.
|-- testLocalHost
| |-- init.py
| |-- asgi.py
| |-- settings.pyc
| |-- urls.py # url 配置
| |-- views.py # 添加的视图文件
| |-- views.pyc # 编译后的视图文件
| |-- wsgi.py
|--db.sqlite3
|-- manage.py
完成后,启动 Django 开发服务器,打开浏览器并访问http://127.0.0.1:8000:
我们也可以修改以下规则:
HelloWorld/HelloWorld/urls.py 文件代码:
from django.urls import path
from . import views
urlpatterns = [
path('hello/', views.hello),
]
通过浏览器打开 http://127.0.0.1:8000/hello,输出结果如下:
注意:项目中如果代码有改动,服务器会自动监测代码的改动并自动重新载入,所以如果你已经启动了服务器则不需手动重启。
path()函数
Django path() 可以接收四个参数,分别是两个必选参数:route、view 和两个可选参数:kwargs、name。
语法格式:
path(route, view, kwargs=None, name=None)
- route: 字符串,表示 URL 规则,与之匹配的 URL 会执行对应的第二个参数 view。
- view: 用于执行与正则表达式匹配的 URL 请求。
- kwargs: 视图使用的字典类型的参数。
- name: 用来反向获取 URL。
Django2. 0中可以使用 re_path() 方法来兼容 1.x 版本中的 url() 方法,一些正则表达式的规则也可以通过 re_path() 来实现 。
from django.urls import include, re_path
urlpatterns = [
re_path(r'^index/$', views.index, name='index'),
re_path(r'^bio/(?P<username>\w+)/$', views.bio, name='bio'),
re_path(r'^weblog/', include('blog.urls')),
...
]
网友评论