python web开发-django

1、将默认的sqlite3数据库修改为Mysql的配置

DATABASES ={
    'default':{
        'ENGINE': 'django.db.backends.mysql',
        'NAME': '你的数据库名',
        'USER': '你的MySQL用户名',
        'PASSWORD': '你的密码',
        'HOST': 'localhost',
        'PORT': '3306',
    }
}

2、request.POST是用来接受从前端表单中传过来的数据,比如用户登录过程中传递过来的username、passwrod等字段。

在后台进行数据获取时,有两种方法(以username为例):request.POST[‘username’]与request.POST.get(‘username’)

2、开发简易版的博客模型

(1)创建博文的数据表模型model.py

from django.db import models

# Create your models here.

class Post(models.Model):
    title = models.CharField(max_length=128)
    body = models.TextField() 
  def __str__(self): return self.title

(2)在数据库中生成表模型

1)生成迁移文件(确保终端在项目目录下):python manage.py makemigrations
2)执行迁移(确保终端在项目目录下):python manage.py migrate

(3)将数据保存到数据库  Post为创建的数据模型

view.py
Post.objects.create(title=title,body=body)

(4)django自带后台管理系统

(5)创建后台超级管理员用户,创建成功后即可访问

python manage.py createsuperuser

(6)将数据模型注册到后台管理系统,即可查看并修改,会同步更新到数据库

from my_app.models import Post

# Register your models here.


admin.site.register(Post)

3、后台将数据传递给前端

context={"post_list":post_list}

4、Jinja2模板:

(1){{ }} 来表示变量名,叫做变量代码块:在页面打印Jinja2的运行结果

(2)控制结构  {% %}:运行在Jinja2的语句

(3){# #}:注释

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Test</title>
</head>
<body>
<p>测试</p>
<p>直接输出姓名:{{name}}</p>
{#这是注释:判断是否存在age#}
{%if age%}
<p>年龄:{{age}}</p>
{%else%}
<p>不存在年龄</p>
{%endif%}
</body>
</html>

5、错误视图的设置方法

 

 6、路由分级:分为总路由跟分路由

总路由,在mydemo/urls中设置总路由,设置好namespace

from django.conf.urls import url,include
from django.contrib import admin
from my_app.views import *


urlpatterns = [
    url(r'^admin/', admin.site.urls),
    url(r'^my_app/',  include('my_app.urls', namespace = 'my')),

]

分路由:设置name参数

from django.conf.urls import url

from my_app.views import *

urlpatterns = [
    url(r'^$', home, name='home'),
    url(r'^index/$', index, name='index'),
 
]

重定向:redicet

from django.urls import reverse
        return redirect(reverse('my:detail',args=(1,)))

7、视图跟路由解耦:反向解析,利用别名将两者解耦

1)模板中的超链接   {% url  'namespace:name' 参数 %}

<form action="{% url 'my:update' post.id %}" method="post">
    {% csrf_token %}

    修改后的文章标题: <input type="text" name="new_title" ><br>
    修改后的文章内容:<input type="text" name="new_body" >
    <input type="submit" value="提交修改">
</form>

 

2)视图中的重定向

def get_form(request):
    if request.method == "GET":
        # return render(request, 'my_app/form.html')
        from django.urls import reverse
        return redirect(reverse('my:home'))

8、cookie是在客户端保存的

session是在返回数据后在服务器保存的信息

 

9、指名静态文件存放的位置:STATIC_ROOT

10、将静态文件导入:

1)在html文件前加入以下代码,将css文件导入

{% load static %}

2)在头部引入相关文件

 <link rel="stylesheet" type="text/css" href="{% static 'css/demo.css' %}" />
        <link rel="stylesheet" type="text/css" href="{% static 'css/style.css' %}" />
        <link rel="stylesheet" type="text/css" href="{% static 'css/animate-custom.css' %}" />

3)

posted on 2020-07-05 12:36  ChanXM  阅读(176)  评论(0)    收藏  举报

导航