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>

 

转载于:https://www.cnblogs.com/shenjianping/p/11526291.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值