经过自己的钻研和学习,大致搞懂了Django项目的具体流程

实属不易,弄了好几天才搞懂,现使用Pycharm详细叙述一下步骤

环境:Python3.7、Django3.0.3、pymysql0.9.3(但要注意可能会报错)

1.使用PyCharm创建Django项目

django python 项目 python基于django的项目_django

2.用命令创建新的应用app

app名根据需要自己设定,点击左下角Teminal,命令输进去回车即可

django python 项目 python基于django的项目_mysql_02

python manage.py startapp defog

执行完成后,将会在项目中创建defog目录

django python 项目 python基于django的项目_django_03

3.将新建的app加入到环境,settings.py文件中

将app名字添加到INSTALLEN_APPS中

django python 项目 python基于django的项目_django python 项目_04

4.修改数据库连接配置

项目默认使用sqllite,我使用mysql,需要进行如下配置

django python 项目 python基于django的项目_django_05

要想数据库连接时使用mysql还需要在__init__.py 填入两行代码

django python 项目 python基于django的项目_mysql_06

代码奉上:

import pymysql
pymysql.install_as_MySQLdb()

5.在新建app中的models.py文件中创建数据库实体类

每个class对应数据库中的一张表

from django.db import models

# Create your models here.

# 在此文件中创建对应的实体类
class Img(models.Model):
    ID = models.IntegerField(primary_key=True)
    originImg = models.CharField(max_length=100)
    afterImg = models.CharField(max_length=100)

6.进行数据迁移

在数据库中创建对应的表,前提数据库必须存在

在Terminal中执行如下代码:执行完成后刷新数据即可

# 创建实体对象
python manage.py makemigrations
# 在数据库中创建表格
python manage.py migrate

会多出好多张表,其余表不用关心,查看是否包含我们需要的表 defog_img

django python 项目 python基于django的项目_数据库_07

注意:在执行上边两条命令时,可能会因为版本问题出错:版本冲突

django python 项目 python基于django的项目_数据库_08

生成数据表后,可以在PyCharm的Terminal中对数据库进行增删改的操作,用的比较少,了解就行,此处省略

7.进行管理员界面配置

修改settings.py中的内容,是界面显示中文

LANGUAGE_CODE = 'zh-Hans'
TIME_ZONE = 'Asia/Shanghai'

创建超级用户,执行命令,回车后依次输入用户名、邮箱、密码

python manage.py createsuperuser

在defog中的admin.py中注册模型类,代码如下:注册有两种形式 1.装饰器注册 2.用admin.site.register()

from .models import Img

# 注册
@admin.register(Img) # 使用装饰器注册
class ImgAdmin(admin.ModelAdmin):
    # 列表属性
    list_display = ['pk','originImg','afterImg']
    list_filter = ['originImg'] # 过滤器,按照某个字段过滤
    search_fields = ['afterImg'] # 搜索,有那个字段能够用那些字段进行搜索
    list_per_page = 5 #分页,每5条分一页

    # 添加、修改页属性
    # fields = ['proceImg','originImg'] # 可以规定属性的修改顺序
    fieldsets = [
        ('id',{"fields":['ID']}),
        ('origin',{"fields":['originImg']}),
        ('after',{"fields":['afterImg']}),
    ] #给属性分组,注意:fieldsets与fields不能同时使用
# admin.site.register(Img,ImgAdmin)

完成后,运行项目,在地址栏输入http://127.0.0.1:8000/admin,输入刚刚创建的账号密码即可进入用户管理页面,可以进行对数据的增删改查

8.最后编写html页面配置settings.py的TEMPLATES即可进行交互

PyCharm默认已经将TEMPLATES配置完成,若没有,可手动添加

django python 项目 python基于django的项目_mysql_09

将获取到的数据通过views.py层的处理,转发到HTML页面进行展示

show.html页面

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>显示所有图像列表</title>
</head>
<body>
    <h2>图像列表</h2>
    <table border="1px" cellspacing="1px" cellpadding="0px">
        <tr>
            <th>id</th>
            <th>originImg</th>
            <th>afterImg</th>
        </tr>
        {% for img in imgs %}
        <tr>
            <td>{{ img.ID }}</td>
            <td>{{ img.originImg }}</td>
            <td>{{ img.afterImg }}</td>
        </tr>
        {% endfor %}
    </table>
</body>
</html>

9.编写views.py层代码

from django.shortcuts import render

# Create your views here.
from django.http import HttpResponse
from django.http import Http404
from .models import Img

def index(request):
    return HttpResponse("hello world")
def detail(request,num):
    return HttpResponse('detail-%s'%num)
# 从数据库中获取所有Img实体类
def findAll(request):
    imgs = Img.objects.all()
    return render(request,"defog/show.html",{'imgs':imgs})

10.配置项目urls.py路径

第一步:配置transport项目下的urls.py路径,配置路径从而可以访问到defog下的urls.py中配置的路径

from django.contrib import admin
from django.urls import path
from django.conf.urls import url, include


urlpatterns = [
    url(r'^admin/', admin.site.urls),
    # 配置默认路径路由,无论什么路径都将转发到defog项目下的urls.py中
    url(r'^', include('defog.urls')),
]

第二步:配置defog下urls.py中的路径

from django.conf.urls import url
from defog import views

urlpatterns=[
    url(r'^$',views.index),
    url(r'^(\d+)/$',views.detail), # 正则表达式使用括号,能够把前端传来的值接收
    url(r'^findAll/$',views.findAll),
]

直接用http://127.0.0.1:8000就能访问到views.py下的index

用http://127.0.0.1:8000就能访问到view.py下的detail

用http://127.0.0.1:8000就能访问到所有Img信息