Play DjangGo

2020-02-06  本文已影响0人  Noza_ea8f

框架怎么学?

如果要学好框架,最好还是从基础入手;
否则总是有不解的问题;
事实上我们通过python提供的soket、wsgi两个库完全可以构造自己的web框架;
当我们实现了自己的web框架之后,很容易就会明白别的框架为什么这么构造了;
建议先学习哔站的这个视频:
https://www.bilibili.com/video/av89018506?p=1
然后再入手DjangGo;
参考文档:
https://docs.djangoproject.com/zh-hans/2.1/topics/

用Pycharm创建一个Django工程

创建完成后,目录结构暂时不要动;
这个结构作为主项目;
如果要运行程序在终端输入

python manage.py runserver

即可

创建子项目

python manage.py startapp test_1

该代码创建了一个名为test_1的子项目;
这相当于项目差分;
不至于与主项目混淆;
创建好后的目录结构


image.png

修改配置

来到主项目下的settings.py文件下
在INSTALLED_APPS里注册新创建的项目


image.png

创建模板

<h1>hello world</h1>

创建视图函数

from django.shortcuts import render


# Create your views here.
def index(request):
    return render(request, 'index.html', {})

{}是用于传参的,目前为空

注册url

from django.urls import path
from . import views
urlpatterns = [
    path('', views.index, name='index'),
]

注意“.”指的是当前目录
这里我们导入了views.py下的index函数;
指定name="index",这个什么意思?
它不是路由路径,因为输入时会报错的,见下图,


image.png

因为JIANJIA2模板可以通过路由对应的函数获取参数,如果路由名字改变,则所有模板中的变量都需要修改,为了避免麻烦,所以从这里起一个固定的名字,这样路由怎么办,都不会影响到模板了,当然这么说很抽象,以后遇到时再解决;

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


urlpatterns = [
    path('admin/', admin.site.urls),
    path('', include('test_1.urls')),
]

打开网页


image.png

创建通用模板

<!doctype html>
<html lang="en">
<head>
    <!-- Required meta tags -->
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">

    <!-- Bootstrap CSS -->
    <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@4.4.1/dist/css/bootstrap.min.css"
          integrity="sha384-Vkoo8x4CGsO3+Hhxv8T/Q5PaXtkKtu6ug5TOeNV6gBiFeWPGFN9MuhOf23Q9Ifjh" crossorigin="anonymous">

    <title>Hello, world!</title>
</head>
<body>
{% block content %}
{% endblock %}

<!-- Optional JavaScript -->
<!-- jQuery first, then Popper.js, then Bootstrap JS -->
<script src="https://cdn.jsdelivr.net/npm/jquery@3.4.1/dist/jquery.slim.min.js"
        integrity="sha384-J6qa4849blE2+poT4WnyKhv5vZF5SrPo0iEjwBvKU7imGFAV0wwj1yYfoRSJoZ+n"
        crossorigin="anonymous"></script>
<script src="https://cdn.jsdelivr.net/npm/popper.js@1.16.0/dist/umd/popper.min.js"
        integrity="sha384-Q6E9RHvbIyZFJoft+2mJbHaEWldlvI9IOYy5n3zV9zzTtmI3UksdQRVvoxMfooAo"
        crossorigin="anonymous"></script>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@4.4.1/dist/js/bootstrap.min.js"
        integrity="sha384-wfSDF2E50Y2D1uUdj0O3uMBJnjuUD4Ih7YwaYd1iqfktj0Uod8GCExl3Og8ifwB6"
        crossorigin="anonymous"></script>
</body>
</html>

{% block content %}
{% endblock %}
是Jia2代码块

{% extends 'base.html' %}

{% block content %}
<h1>哈喽,世界</h1>
{% endblock %}
image.png

修改base.html样式

image.png
上一篇 下一篇

猜你喜欢

热点阅读