Python Django 网站开发培训 - 2周入门 web后端开发 web服务端开发_哔哩哔哩_bilibili

文档

千锋教育

这个比较完整

初始化

  • 创建项目目录结构
1
django-admin startproject [项目名]

eg:

1
django-admin startproject myproject

结构如下:

1
2
3
4
5
6
7
8
9
└─myproject
│ manage.py # 工具脚本

└─myproject # 项目配置文件
asgi.py
settings.py # 配置信息
urls.py # url路由文件
wsgi.py # 看文档,就是一些协议
__init__.py

settings.py

  • ALLOWED_HOSTS 可以配置可用ip(默认127.0.0.1可用)
    eg: ALLOWED_HOSTS = ["49.140.60.13"]

  • 运行服务器
1
python manage.py runserver [ip:端口]

eg:

1
python manage.py runserver 0.0.0.0:80

0.0.0.0 表示绑定本机所有的IP地址, 就是可以通过任何一个本机的IP (包括 环回地址 127.0.0.1 ) 都可以访问我们的服务。


路由设置

  • 创建app命令
1
python manage.py startapp [app名]

eg:

1
python manage.py startapp sales 

文件结构:

1
2
3
4
5
6
7
8
9
10
sales
│ admin.py
│ apps.py
│ models.py
│ tests.py
│ views.py # 通常用来编写http请求
│ __init__.py

└─migrations
__init__.py

  • 关联路由

设计 凡是浏览器访问的http 请求的 url 地址 是 /sales/orders/ , 就由 views.py 里面的函数 listorders 来处理, 返回一段字符串给浏览器。

eg:

当前文件目录
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
SEVER
│ manage.py

├─sales
│ │ admin.py
│ │ apps.py
│ │ models.py
│ │ tests.py
│ │ views.py
│ │ __init__.py
│ │
│ └─migrations
│ __init__.py

└─sever
│ asgi.py
│ settings.py
│ urls.py
│ wsgi.py
│ __init__.py

└─__pycache__
settings.cpython-38.pyc
__init__.cpython-38.pyc

views.py中添加处理信息:

1
2
3
4
5
6
7
8
from django.shortcuts import render

# Create your views here.

from django.http import HttpResponse

def listorders(request):
return HttpResponse("下面是系统中所有的订单信息。。。")

urls.py中配置路由:

1
2
3
4
5
6
7
8
9
10
from django.contrib import admin
from django.urls import path

from sales.views import listorders # 导入目标模块

urlpatterns = [
path("admin/", admin.site.urls),

path("sales/orders/", listorders), # 配置路由关联模块
]

  • 修改成子表(分类)

sales文件夹中增加urls.py,内容为:

1
2
3
4
5
6
7
from django.urls import path

from .views import listorders # 导入目标模块

urlpatterns = [
path("orders/", listorders), # 配置路由关联模块,注意不需要再写sales了
]

修改sever文件夹下的urls.py:

1
2
3
4
5
6
7
8
from django.contrib import admin
from django.urls import path, include # 增加一个Django的函数include

urlpatterns = [
path("admin/", admin.site.urls),

path("sales/", include('sales.urls')), # 关于sales的路由转到sales.urls.py中去处理
]

  • 返回的是html页面

1.优先去项目根目录的templates中寻找 (提前先配置) [不配置就是无效]
2.根据app的注册顺序,在每个app下的tempLates目录中寻找 (推荐

eg:

views.py中增加如下函数:

1
2
3
4
5
6
7
8
from django.shortcuts import render

# Create your views here.

from django.http import HttpResponse

def listorders(request):
return HttpResponse("下面是系统中所有的订单信息。。。")

ORM

使用mysql

  • 配置
1
pip install mysqlclient

settings.py:

1
2
3
4
5
6
7
8
9
10
DATABASES = {
"default": {
"ENGINE": "django.db.backends.mysql",
"NAME": "django_byhy",
"USER": "root",
"PASSWORD": "123456",
"HOST": "127.0.0.1",
"PORT": "3306",
}
}