Djangoの1
来源:互联网 发布:linux 设置文件夹权限 编辑:程序博客网 时间:2024/06/09 19:26
404:有域名无路由。路由是网址中域名后、?前的那段;?后是参数,参数中15开头的13位数字通常是时间戳。
urls.py、views.py、xxxx.html中,所出现的各种相对路径:
拼接的是IP地址(或域名):①路由函数内开头无/的路由首参;②视图函数或html内开头无/的项目根目录(即与manage.py同级的文件夹或文件);③视图函数或html内开头是/的网址;
拼接的是路由首参等IP之后的半截网址:视图函数或html内,①开头无/的网址;②开头是/的项目次级目录(即与manage.py同级的某app文件夹下的子文件夹或子文件)。所以路由函数内的各首参网址,开头无/,结尾却要有/,不然与之对应的视图函数或html内,开头无/的各相对路径,拼接不过来。
1级路径是第1个/前的部分,指IP域名或位于项目根目录下的本地文件夹;2级路径是前2个/之间的部分,项目根目录下的某app文件夹下的2级文件夹如static,不论作为非路由网址还是本地2级文件夹,前后都要有/;3级路径如static下的文件夹css,开头无/。
Eg:settings.py底部的STATIC_URL ='/static/',前后都有/的原因:
①本地文件夹和网址的双重身份:static作为本地文件夹,放在project的某个app下而非project根下,所以开头得有/;作为写在路由函数之外的网址,拼接的是IP域名,开头同样要求有/。
②css等第3级子文件夹或子文件,并非拼接在域名后,按拼接语法开头不能有/,故网址/static,结尾得补个/,才能接收css…等第3级路径拼接在其末尾。
①本地文件夹和网址的双重身份:static作为本地文件夹,放在project的某个app下而非project根下,所以开头得有/;作为写在路由函数之外的网址,拼接的是IP域名,开头同样要求有/。
②css等第3级子文件夹或子文件,并非拼接在域名后,按拼接语法开头不能有/,故网址/static,结尾得补个/,才能接收css…等第3级路径拼接在其末尾。
**************************分割线**************************
django1.6自定义markdown过滤器:
http://www.zhidaow.com/post/django-custom-template-tag-markdown
设计个有远见的数据库=项目完成了一半=几千行代码。让当前的代码活事半功倍,而且减少日后修改的次数和面积。数据库的架构是企业的核心机密,同行业的竞争对手看到你的数据库架构,就能山寨出来一个高度相似的项目。
**************************分割线**************************
三大web框架的不同请求的各自写法:
tornado用方法self.get_argument('name值'),flask和django都用字典:request.xxx['name值']
①tornado:不论是get还是post请求,都是self.get_argument('name属性的值',default=None)
②flask:get请求用request.args['name值'],post请求用request.form['name值'];
③django:
request.GET['type为text的input标签的name属性的值'],结果在网址尾;
request.POST['name值'],request.FILES['type为file……'],它俩的结果都藏在postData中;
request.META['某个请求头如HTTP_REFERER']
**************************分割线**************************
html模板:①{{变量}};
②{%语法如if、for…in…、with…as…等;或函数如loadstatic from staticfiles、csrf_token等 %}
django和flask的 html模板中的 循环或判断:
(tornado例外,结尾全是{% end%},字典用d['key']而非d.key)
{% for country in countries %}
{% endfor %}
****************************************分割线****************************************
django做个电影网站:
①E盘下建个movie文件夹→PyCharm新建项目选Django→location改为E:\movie→MoreSettings的Application写个dy;
(注:PyCharm新建好django项目后,启动项目是在settings.py等界面,按绿方块dj+根目录如movie右侧的绿三角,而非我所自定义并习惯了的F5键Runcontext configuration)
**************************分割线**************************
②项目文件夹movie:
***************分割线***************
配置文件settings.py:
DEBUG =True在部署到Linux服务器之前要改为False。INSTALLED_APPS尾已自动添加了dy…,不理会;若新建应用,则模仿dy…添加。
LANGUAGE_CODE = 'zh-hans'
TIME_ZONE= 'Asia/Shanghai'
DATABASES = {
}
***************分割线***************
路由文件(各正则网址)urls.py:
from django.conf.urls importurl
from django.contrib importadmin
from dy import views
urlpatterns = [
]
**************************分割线**************************
③应用文件夹dy:
***************分割线***************
让Python和数据库交互(俗称ORM)的文件models.py:
在E:\movie路径下进入cmd:python manage.pyinspectdb > dy/models.py
回车后,settings.py中所配置的数据库movie中的各表,会以class的形式(首字母大写,去除表名中的_),自动写入models.py
***************分割线***************
各路由网址呈现什么内容的文件views.py:
fromdjango.shortcuts import render
from django.http importHttpResponse #网页显示字符串,太简陋,一般不用它
from dy.models importDyDymodels #导入movie库中电影数据源所在的那张表
def chengy(request):
def index(request):
***************分割线***************
应用文件夹dy下新建个templates文件夹,其内新建个index.html:
<!DOCTYPE html>
<html lang="en">
<head>
</head>
<body>
<form action="/" method="post">
</form><br>
{% if movies %}
{% endif %}
</body>
</html>
****************************************分割线****************************************
开发网盘:
①E盘下建个wangpan文件夹→……Application写个disk;
***************分割线***************
②项目文件夹wangpan:
__init__.py:
import pymysql
pymysql.install_as_MySQLdb()
settings.py:
DATABASES = {
}
urls.py:
fromdjango.conf.urls import url
fromdjango.contrib import admin
from disk import views
urlpatterns =[
]
***************分割线***************
③应用文件夹disk:
models.py:
from django.db importmodels
classFileInfo(models.Model):
在E:\wangpan进入cmd,依次执行如下两句,用models.py的各类,生成mysql的网盘库的各表:
python manage.pymakemigrations
python manage.py migrate
******分割线******
views.py:
fromdjango.shortcuts import render
from django.http importHttpResponse,HttpResponseRedirect
import hashlib
from disk.models import FileInfo
def index(request):
def upload(request):
def content(request,fileMd5):
def download(request):
***************分割线***************
④index.html:
<!DOCTYPE html>
<html lang="en">
<head>
</head>
<body>
<form action="/upload/" method="post"enctype="multipart/form-data">
</form>
</body>
</html>
content.html:
<!DOCTYPE html>
<html lang="en">
<head>
</head>
<body>
<li>文件名:{{ fileName}}</li>
<br> <!--换行符-->
<li>文件大小:{{ fileSize}}</li>
<br>
<li><a href="{{ fileUrl}}">点击下载</a></li>
</body>
</html>
****************************************分割线****************************************
小说网站:
①E盘下建个novel文件夹→……Application写个xs;
***************分割线***************
②settings.py:
DATABASES= {
}
urls.py:
from django.conf.urls importurl
from django.contrib importadmin
from xs import views
urlpatterns =[
]
***************分割线***************
③models.py:
在E:\novel路径下进入cmd:python manage.py inspectdb >xs/models.py
views.py:
fromdjango.shortcuts import render
from xs.models importNovelCopy
def index(request):
***************分割线***************
④index.html:
{% load staticfiles%} <!--若static文件夹及settings.py末尾均改了名,html中只需改这1处-->
<!doctype html>
<html>
<body>
<div class="full-pic"></div> <!--===== Full Screen BG =====-->
<header class="header"> <!--===== Begin Header=====-->
</header>
<!--===== Begin Main =====-->
<section class="main"><div class="main-wrapwrap1000"><div class="hot-section"><divclass="hot-content">
<!--|safe把空格、换行等标点转为正常字符;|chuncatechars:'数字',把超出的字数以仨点替之-->
<footer class="footer"> <!--=====BeginFooter=====-->
<script src="{% static'js/index.js' %}"></script> <!--Main Plugin -->
</body></html>
阅读全文
0 0
- Djangoの1
- Django-1
- django 1
- Django 1
- 【python Django】django入门教程1
- 使用Django Component 系列1 :django-cms
- django基础入门(1)django基本配置
- Django项目实践1 - 创建Django项目
- Django学习笔记(1):初会Django
- Django(1)--window环境安装Django
- django-1:搭建django开发环境
- Django开发博客-(1)Django简介
- djangoの2
- django模型1
- Django笔记1
- django复习1
- django入门笔记-1
- Python Django学习 1
- 网站各注册用户的密码的摘要存储
- flask
- 基于Kubernetes构建Docker集群管理详解
- excelHome上传附件
- 一个简单的string容器实现
- Djangoの1
- djangoの2
- 静态链表和动态链表
- mongo-java-driver -3.2.2学习笔记-07-GridFs
- tornado
- [JAVA]从零开始的“桌面宠物”之路(二):系统托盘与任务栏
- 使用retrofit时,gzip带来的坑
- 学数组与指针一点感悟
- Codeforces Round #449 (Div. 2) 897A. Scarborough Fair