把代码从django_micro迁移到 Django

之前已写好django_micro上的代码,大体功能是:输入水印的文字,选择要加水印的图片,最后生成加好水印的图片。django项目和app已创建完成。现在要把代码迁移到django上。

1、修改app的views.py文件

(1)在app的views.py中,把原django_micro中的处理数据部分的代码拷贝过来,一般除了页面代码外,其他代码都要拷贝过来;至少有index函数。

(2)修改少量代码,如:@route('')要删掉,但要记得url,这是配置urls.py的信息

def index(request: HttpRequest):
    return render(request, 'page.html')

2、生成网页模板html文件

原django_micro中,页面是用dominate写的,要生成对应的html文件作为网页模板:

(1)在app目录中新建templates目录(templates名称和路径一定要正确);

(2)在app目录中新建ui.py文件;

(3)在ui.py文件中,把原django_micro中页面代码部分拷贝过来,新写代码,运行ui.py文件,在templates目录下生成html文件:

with open('templates/page.html','w+') as f:
    f.write(page())

(4)如果有函数需要参数,则给函数一个默认参数{{param}},如:

def item(filename='{{filename}}'):
    with dom.div(cls=RESULT_ITEM) as ResultItem:

(5)检查生成的html文件是否符合要求,待传入参数名称和位置是否正确

3、再次修改view.py文件,将模板中所需参数传递过去,如:

def filehandler(request: HttpRequest):
       ……
            ctx = {'filename': filename}
    return render(request, 'item.html', context=ctx)

4、在app目录中新建urls.py文件,在其中配置url与views处理函数的对应关系:

from django.urls import path, include, re_path
from . import views

app_name = 'djlapp'

urlpatterns = [
    path('', views.index, name='index'),
    path('file', views.filehandler, name='file'),
    path('download', views.download, name='download'),
]

5、配置项目urls.py:

urlpatterns = [
    path('admin/', admin.site.urls),
    path('',include('djlapp.urls')), # 加这句
]

6、如果有提交表单数据的功能,则需要在html表单里input标签附近,添加{% csrf_token %},如:

<input class="hidden" id="fileupload" name="ori_img" onchange="$('#show_info').text(this.value.split(&quot;\&quot;).pop(-1))" type="file">
{% csrf_token %}

否则会报csrf的错,提交后续功能不能实现。

7、最后启动服务,浏览器访问地址,验证迁移是否成功。

python manage.py runserver

注意:

1、django_micro代码中的页面代码与数据处理代码要分开,页面代码要用于网页模板生成。

2、以上步骤不是严格一步一步走,应根据实际情况随时在多个文件中修改。

原文地址:https://www.cnblogs.com/djlbolgs/p/12718589.html