标签:charm loop join 逻辑 rom pattern ash tin set
处理流程:
浏览器请求-->django-->url分发(urls.py)-->views视图处理逻辑(views.py)-->render(django模板渲染)-->返回浏览器解析
变量{{ var }}, 过滤器{{ var|length }}, 标签{% for name in dict%} 只是django的模板渲染,是django模板的语法,浏览器并不认识,django渲染(render,解析成浏览器能够识别的html格式)后再返回(return)浏览器解析--> return render(request, ‘home.html‘)
APPEND_SLASH = False # 网址结尾不加/
浏览器发起get请求方式:
浏览器发起post请求方式:
浏览器地址栏url发请求 等于 a标签href发请求
html
{% for book in book_lst %}
<tr>
<td>{{ forloop.counter }}</td>
<td>{{ book.title }}</td>
<td>{{ book.price }}</td>
<td>{{ book.pub_date|date:‘Y-m-d‘ }}</td>
<td>{{ book.publish }}</td>
<td>
<a href="" class="btn btn-warning">编辑</a>
{# a 标签发请求 相当于 地址栏发请求 #} }
<a href="/books/delete/{{ book.nid }}" class="btn btn-danger">删除</a>
</td>
</tr>
{% endfor %}
</tbody>
urls.py
url(r‘^books/delete/(\d+)/‘, views.dele_book, name=‘new_book‘) # 传入需要删除的键值,并重定向到查询页,并且根据name 反向解析url,防止url地址更改
views.py
from django.urls import reverse
def dele_book(request, book_nid):
book.objects.filter(nid=book_nid).delete()
url = reverse(‘new_book‘)
return redirect(url)
外部环境使用django的models或者外部环境调用django的设置,需要配置django环境
# xxx.py
import os
if __name__ == ‘__main__‘:
# django manage.py中的源码
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "orm_relation.settings") # django环境,
from app01.models import Book
obj_list = []
for i in range(1, 10):
obj = Book(
title=f‘python{i}‘,
price=120 + i * 10
publish = ‘上海出版社‘ if i < 5 else ‘北京出版社‘,
)
obj_list.append(obj)
Book.objects.bulk_create(obj_list) # 批量添加记录
mysql 时间差异, UTC时间, 中国处在东8区,本地要+8小时
django.settings:
TIME_ZONE = ‘Asia/Shanghai‘
USE_TZ = False
临时方案:
mysql> SET time_zone = ‘+8:00‘;
永久解决方案:
配置windows:my.ini linux: /etc/my.cnf
[mysqld]
default-time_zone = ‘+8:00‘
service mysql restart #重启服务,linux
取主键值:对象.pk,不管对象内部主键的名字是什么,pk总能取到主键值
obj = Human.objects.get(name=‘sunny‘)
print(obj.pk)
apps: app应用同一放在apps目录下(package)
extra_apps: 存放第三方源码
media: 用户上传的目录
static: 静态文件目录
css
js
img
...
templates: 模板html文件
requirement.txt: 项目依赖的第三方包罗列在此文件, pycharm会检测到依赖包是否安装
静态文件,url都用别名,以便修改,防止攻击
静态文件设置:
settings.py
STATIC_URL = ‘/static/‘
STATICFILES_DIRS=[
os.path.join(BASE_DIR, ‘static‘),
]
html调用:
{% load static %}
<script src="{%static ‘js/jquery.js‘ %}"></script>
url别名设置:
urls.py
urlpatterns = [
path(‘login/‘, views.LoginView.as_view(), name=‘login‘),
]
html调用:
<form action="{% url ‘login‘ %}" method="post">
标签:charm loop join 逻辑 rom pattern ash tin set
原文地址:https://www.cnblogs.com/relaxlee/p/12842947.html