Django 项目快速创建

目录

1、Django项目目录解析

2、配置url和静态文件

3、 orm和model表设计

4、model进行增、删、改、查

5、html页面与数据库的交互





1、Django项目目录解析

(1)使用pyCharm创建Django项目(也可手动创建django-admin startproject HelloWorld),pyCharm的Tools-Run manage.py Task可以直接使用manage.py进行操作。 

Django 项目快速创建_第1张图片

(2)为了便于组织不同应用,新建apps文件夹,并将创建的应用都放在该文件夹下。新建extra_apps用于存放第三方的源码。

(3)新建的app,需要将apps.py中的项目类配置到settings.py文件中的INSTALLED_APPS中。

Django 项目快速创建_第2张图片




2、配置url和静态文件

(1)pyCharm的工具栏上的run可以启动Django应用,也可以使用manage.py启动Django项目

python manage.py runserver 127.0.0.1:8000

    ctrl+fn+b 退出网站

(2)在urls.py中将自己的应用配置进来(访问的url和对应的操作),并在应用的views.py中配置对应的处理方法(将html页面返回)。

Django 项目快速创建_第3张图片Django 项目快速创建_第4张图片

(3)配置静态文件

在settings中设置STATICFILES_DIRS为全局下的static文件夹

Django 项目快速创建_第5张图片

(4)配置一个html页面显示的步骤

        a. 配置url

        b. 配置对应的views逻辑

        c. 拆分(css,js,image)到静态文件中,html放到templates中

        d. 配置全局static路径

3、 orm和model表设计

(1)为了使管理后台可以访问数据库,要做一个数据库迁移

python manage.py makemigrations
python manage.py migrate

(2)将数据库engine改为MySQL

Django 项目快速创建_第6张图片

(3)在models中定义表结构

Django 项目快速创建_第7张图片

4、model进行增、删、改、查

(1)在views中进行与html页面进行互动

(2)从数据库里取数据

Django 项目快速创建_第8张图片

        Django 项目快速创建_第9张图片Django 项目快速创建_第10张图片

5、html页面与数据库的交互

(1)html 数据保存到数据库中(post)

        a. form表单的action属性要对应相应的网页,才能在表单提交时将数据存入数据库

        b. 注意Django强制要在表单最后添加{ % csrf_token %},防止csrf攻击

        c. 一般一个网页既有get功能,又有post功能

        Django 项目快速创建_第11张图片

(2)html显示数据库中的数据(get)        

# 一个网页既有get功能,又有post功能
def message_form(request):
    if request.method == "POST":
        message = Message()
        message.name = request.POST.get("name", "")
        message.email = request.POST.get("email", "")
        message.address = request.POST.get("address", "")
        message.message = request.POST.get("message", "")
        message.save()
        return render(request, "MediaBoard.html", {
            "message": message
        })

    if request.method == "GET":
        var_dict = {}
        all_messages = Message.objects.all()
        if all_messages:
            message = all_messages[0]
            var_dict = {
                "message": message
            }
            return render(request, "MediaBoard.html", message)

Django的templates模板(django.template.backends.django.DjangoTemplates)使用{{}}来与后端python代码交互

Django 项目快速创建_第12张图片

你可能感兴趣的:(python,django)