zoukankan      html  css  js  c++  java
  • Django基础

    一、创建Django项目

    1、创建project

    django-admin startproject mysite

    2、生成project的目录

    mysite/
        manage.py
        mysite/
            __init__.py
            settings.py
            urls.py
            wsgi.py

    3、其它常使用的命令

    python manage.py startapp appname   #生成app
    python manage.py runserver 0.0.0.0    #运行服务
    python manage.py makemigrations     #数据库迁移
    python manage.py migrate               #生成数据库表

    二、项目配置

    1、配置模板路径

    TEMPLATE_DIRS = (
            os.path.join(BASE_DIR,'templates'),
        )

    2、配置静态文件资源

    STATICFILES_DIRS=(
        os.path.join(BASE_DIR,"statics"),
    )

    值得注意的是在创建项目时,settings中自动生成STATIC_URL = '/static/',它是引用名,代替STATICFILES_DIRS。

    3、数据库配置

    DATABASES = {
        'default': {
            'ENGINE': 'django.db.backends.mysql', 
            'NAME': '', #数据库名称
            'USER': '', #数据库用户名
            'PASSWORD': '', #数据库密码
            'HOST': 'localhost', #主机地址
            'PORT': '3306', #端口号
        }
    }

    在进行使用mysql数据库时注意的是需要在与settings.py文件同一级的__init__.py文件中写入:

    import pymysql
    
    pymysql.install_as_MySQLdb()

    三、路由配置

    1、路由分发

    首先有一个总的路由系统,然后根据总的路由系统在进行每一个app的分发:

    from django.contrib import admin
    from django.urls import path,include
    
    urlpatterns = [
        path('admin/', admin.site.urls),
        path('blog/', include('blog.urls')),  #其中blog为app名字
    ]  

    2、每一个app中的路由

    每一个app中都有一个urls.py文件,其中的每一个路由都对应一个视图函数,当请求到来时,匹配对应的url并且交给对应的函数进行处理:

    urlpatterns = [
        path('article/(d{4})$/', views.artile,), 
        path('article/(?P<y>d{4})/(?P<m>d{2})/', views.artile_y),
        path('register/', views.register, name="reg" ),  
    ]

    四、视图

    当请求进入到视图后,就开始进行相应的处理:

    def artile(request,year):
        return render(request,'index.html',{'year':year})
    
    def artile_y(request,y,m):
        return render(request, 'index.html', {'year': y,'month':m})
    
    def register(request):
        if request.method == 'GET':
            return render(request,'register.html')
        return HttpResponse('success!')

    五、模板渲染

    1、渲染后台返回的数据

    视图返回的数据就会在模板上进行渲染:

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
    </head>
    <body>
    <p>年份:{{ year }}</p>
    <h1>年份:{{ month }}</h1>
    </body>
    </html>

    2、模板引入静态文件

    值得注意的是如果有静态文件需要引入,在模板文件内容的上方load staticfiles:

    {% load staticfiles %}
    <!DOCTYPE html>
    ...
    <script src="{% static 'jquery-3.3.1.min.js' %}"></script>
    ...
    </html>

    3、模板中命名空间的使用

    对于有命名空间的url,可以使用命名空间,而无需写url:

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
    </head>
    <body>
    
    <form action="{% url 'reg' %}" method="post">
    ...
    ...
    </form>
    </body>
    </html>
  • 相关阅读:
    1.Netty 实战前言
    8.Netty发送对象
    7.Netty中 handler 的执行顺序
    6.高性能NIO框架netty
    5.NIO_ Selector选择器
    4.NIO_Channel 通道
    3.NIO_Buffer缓冲区
    2.Java NIO 简介
    那些堪称神器的 Chrome 插件
    获取当前操作的IFrame 对象的方法
  • 原文地址:https://www.cnblogs.com/shenjianping/p/11526291.html
Copyright © 2011-2022 走看看