Web从入门到放弃<2>
<添加debug-toolbar>
django现在1.11是必须这么做:
pip install django-debug-toolbar
设置1:
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'polls',
'debug_toolbar',
]
设置2:
INTERNAL_IPS = ('127.0.0.1',)
MIDDLEWARE = [
'django.middleware.security.SecurityMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.common.CommonMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware',
'debug_toolbar.middleware.DebugToolbarMiddleware',
]
主要的urls.py里添加:
import debug_toolbar
url(r'^__debug__/', include(debug_toolbar.urls)),
如果还没显示出来,我通过f12看了下,一个jquery-min.js没加载,是要翻墙吗!!!!!!!!!果然翻墙好了。。。。CNM的天朝,CNM的天朝CNM的天朝CNM的天朝CNM的天朝CNM的天朝CNM的天朝
实现:

<body style="background-color: #222222"> <h1 style="text-align: center;background-color: #555555;
color:white;font-family: Source Code Pro;border-radius: 10px"> Questions </h1> {% if latest_question_list %}
<ul type="none">
{% for question in latest_question_list %}
<li style="color: white;;font-family: Source Code Pro">
<a href="/polls/{{ question.id }}/">{{ question.question_text }}</a>
</li>
{% endfor %}
</ul>
{% else %}
<p>No polls are available.</p>
{% endif %} </body>
index.html
对应的polls/views.py 里的index函数:
# -*- coding: utf-8 -*-
from __future__ import unicode_literals from django.shortcuts import render
from django.http import HttpResponse,Http404
from .models import Question
from django.template import loader
from django.shortcuts import render,get_object_or_404
"""
def index(request):
latest_question_list = Question.objects.order_by('-pub_date')[:5]
output = ', '.join([q.question_text for q in latest_question_list])
return HttpResponse(output)
""" """
def index(request):
latest_question_list = Question.objects.order_by('-pub_date')[:5]
print latest_question_list
template = loader.get_template('polls/index.html')
context = {
'latest_question_list': latest_question_list,
}
return HttpResponse(template.render(context, request))
""" def index(request):
latest_question_list = Question.objects.all()
context = {'latest_question_list':latest_question_list}
return render(request,'polls/index.html',context)
修改index.html之: 主要用div的layout(参考http://www.w3school.com.cn/html/html_layout.asp)

<head>
<style>
#header {
background-color: black;
color: white;
text-align: center;
padding: 5px;
font-family: Consolas;
} #nav {
line-height: 30px;
background-color: #eeeeee;
height: 300px;
width: 100px;
float: left;
padding: 5px;
font-family: Consolas;
} #section {
width:auto;
float: left;
padding: 10px;
color:white;
text-align: center;
font-family: Consolas;
} #footer {
background-color: black;
color: white;
clear: both;
text-align: center;
padding: 5px;
font-family: Consolas;
}
</style>
</head> <body style="background-color: #222222"> <!-- Header-->
<div id="header">
<h1> Questions </h1>
</div> <!-- nav -->
<div id="nav">
{% if latest_question_list %}
{% for question in latest_question_list %}
<a href="/polls/{{ question.id }}/"> {{ question.question_text }}</a><br>
{% endfor %}
{% else %}
<p>No polls are available.</p>
{% endif %} </div> <!-- section -->
<div id="section">
<p>please select a production get more details</p>
</div> <!-- footer -->
<div id="footer">
<p> copyright gearslogy </p>
</div> </body>
动态的获取跳转页面:
这样做的好处是我们现在是polls/urls.py定义的是这个路径:
url(r'^([0-9]+)/$',views.detail,name='detail'),
index.html里是:
<a href="/polls/{{ question.id }}/">{{ question.question_text }}</a>
其实这个是非常不好的方法,这个会导致你写死/polls/1
但是可以看到在urls.py里有name = 'detail',可以用下面的做法:
<a href="{% url 'detail' question.id %}"> {{question.question_text}}</a>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Questions</title>
</head>
<body> {% for question in latest_question_list %}
<ul>
<a href="{% url 'detail' question.id %}"> {{question.question_text}}</a>
</ul> {% endfor %} </body>
</html>
从下面开始将用python3开始项目。受不了文档中他妈的各种部适合
<1>数据库再次尝试:
查看models的api如何工作的:
from django.db import models
import datetime
from django.utils import timezone # Create your models here.
class Question(models.Model):
question_text = models.CharField(max_length= 200,help_text='Question text')
pub_date = models.DateTimeField('data published')
def __str__(self):
return self.question_text def was_published_recently(self):
return self.pub_date >= timezone.now() - datetime.timedelta(days=1) class Choice(models.Model):
question = models.ForeignKey(Question,on_delete=models.CASCADE)
choice_text = models.CharField(max_length =200)
votes = models.IntegerField(default=0)
def __str__(self):
return self.choice_text class RelativeStuff(models.Model):
question = models.ForeignKey(Question,on_delete=models.CASCADE)
stuff_name = models.CharField(max_length = 200)
models.py
Choice和RelativeStuff都关联了Question
则Question类会有个动态对象是choice_set , relativestuff_set
如果
q = Question.objects.get(id=1) # 获取一个Question对象
q.choice_set.create(choice_text = 'Not much', votes = 10) #直接会插入数据库中
如下执行3次:

数据库直接就插入数据:

<2>1天撸一个表格程序:

实现细节: 静态文件:

要在你的html引用static文件:
{% load staticfiles %}
然后:
<head>
<meta charset="utf-8">
<title> Gearslogy</title>
<link rel="stylesheet" href="{% static 'css/bootstrap.min.css' %}">
<script src="{% static 'js/jquery.min.js' %}"></script>
<script src="{% static 'js/bootstrap.min.js' %}"></script> </head>
base.html:
{% load staticfiles %}
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title> Gearslogy</title>
<link rel="stylesheet" href="{% static 'css/bootstrap.min.css' %}">
<script src="{% static 'js/jquery.min.js' %}"></script>
<script src="{% static 'js/bootstrap.min.js' %}"></script>
</head>
<body>
<nav class="navbar navbar-inverse navbar-fixed-top" role="navigation" >
<div class="container-fluid" >
<div class="navbar-header">
<a class="navbar-brand" href="{% url 'polls:index' %}">Home</a>
</div>
<div>
<ul class="nav navbar-nav" >
<li class="active"><a href="">Tables</a></li>
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown">
Products <b class="caret"></b>
</a>
<ul class="dropdown-menu">
{% for question in question_list %}
<li><a href="{% url 'polls:detail' question.id %}"> {{ question.question_text }} </a></li>
{% endfor %}
</ul>
</li>
</ul>
</div>
</div>
</nav>
<br>
<br>
<br>
<div>
{% block primary %} {% endblock %}
</div>>
</body>
</html>
主页index.html
{% extends "base.html" %}
{% block primary %}
<table class="table table-hover">
<caption>悬停表格布局</caption>
<thead>
<tr>
{% for h in header %}
<td> {{ h }} </td>
{% endfor %}
</tr>
</thead>
<tbody>
<tr>
<td>Tanmay</td>
<td>Bangalore</td>
<td>560001</td>
</tr>
<tr>
<td>Sachin</td>
<td>Mumbai</td>
<td>400003</td>
</tr>
<tr>
<td>Uma</td>
<td>Pune</td>
<td>411027</td>
</tr>
{% for sd in data %}
<tr>
{% for d in sd %}
<td>{{ d }}</td>
{% endfor %}
</tr>
{% endfor %}
</tbody>
</table>
{% endblock %}
另外一个细节:如果你要漏油一个图片:
views.py
def viewImage(request):
return HttpResponse('<img src="/static/image/test.jpg"> HelloWorld </img>')
urls.py
from django.urls import path from . import views app_name = 'polls' urlpatterns = [
path('',views.index,name='index'),
path('<int:question_id>/',views.detail,name='detail'),
path('<int:question_id>/results/',views.results,name='results'),
path('<int:question_id>/vote/',views.vote,name='vote'),
path('view/',views.viewImage,name='viewImage'),
]
Web从入门到放弃<2>的更多相关文章
- Web从入门到放弃<8>
Ref: Cameron D. - HTML5, JavaScript and jQuery (Programmer to Programmer) - 2015 http://www.runoob.c ...
- Web从入门到放弃<7>
从这章开始读<javascript高级程序设计> <1>typeof 返回字符串 / 类型 未定义:undefined 布尔:boolean 字符串:string 数值:num ...
- Web从入门到放弃<5>
<1> CSS_DOM 1,structural layer 2,presentation layer 3,behavior layer style也是一个属性 <!DOCTYPE ...
- Web从入门到放弃<1>
HTML大法: <01> <!DOCTYPE html> <html lang="en"> <head> <meta char ...
- Web从入门到放弃<6>
<1> Canvas. 1,灰度图: js: function showAsGray() { var imgNode = document.getElementById('img'); ...
- Web从入门到放弃<4>
1,插入 如下html: <!DOCTYPE html> <html lang="en"> <head> <meta charset=&q ...
- Web从入门到放弃<3>
UI简单的美化全部来源于Bootstrap 知识来自<javascript dom编程艺术第二版> <1> 点击列表 页面不跳转图片刷新: 主要点: href如何点击完如何不 ...
- 后端API入门到放弃指北
后端API入门学习指北 了解一下一下概念. RESTful API标准] 所有的API都遵循[RESTful API标准]. 建议大家都简单了解一下HTTP协议和RESTful API相关资料. 阮一 ...
- OpenStack从入门到放弃
OpenStack从入门到放弃 目录: 为何选择云计算/云计算之前遇到的问题 什么是云计算 云服务模式 云应用形式 传统应用与云感知应用 openstack及其相关组件介绍 flat/vlan/gre ...
随机推荐
- GIL全局解释器锁
1. 什么是GIL全局解释器锁 GIL本质就是一把互斥锁,相当于执行权限,每个进程内都会存在一把GIL,同一进程内的多个线程 必须抢到GIL之后才能使用Cpython解释器来执行自己的代码,即 ...
- Atcoder Dwango Programming Contest V
模拟,做了ABC三题. D难一些,就不会了. 中规中矩的吧... Atcoder DPCV B 题意:给一个序列,求出所有的子串和中AND值最大的k个数的AND. 思路:既然要求AND,那么肯定按位考 ...
- CentOS7.5脱机安装SQL Server 2017(NEW)
发现搜到的都是在线下载安装的,都是只安装了mssql-server服务,没有mssql-server-agent服务.还以为linux下mssql没有agent服务呢.一番测试发现可以脱机安装,但是能 ...
- python __init__() 和__new__()简析
先看下面一个例子: 如上图,例1中,构造了函数Foo,并重写了__new__()和__init__()方法,在实例化Foo()的时候,却只调用了__new__() 例2中,在实例化Too()对象时,同 ...
- 爬虫基础(一)-----request模块的使用
---------------------------------------------------摆脱穷人思维 <一> : 建立时间价值的概念,减少做那些"时间花的多收 ...
- 控制结构(2): 卫语句(guard clause)
// 上一篇:分枝/叶子(branch/leaf) // 下一篇:状态机(state machine) 基于语言提供的基本控制结构,更好地组织和表达程序,需要良好的控制结构. 典型代码: 同步版本 f ...
- JVM内存区域详解
本文分为两部分:一是JVM内存区域的讲解:二是常见的内存溢出异常分析. 1.JVM内存区域 java虚拟机在执行java程序的过程中会把它管理的内存划分为若干个不同的数据区域,这些区域都有各自的用途, ...
- Redis单机配置多实例,实现主从同步
版权声明:本文为博主原创文章,欢迎转载,转载请保留或注明出处 本文转自:http://www.cnblogs.com/lgeng/p/6623336.html 一,单机多实例:Redis官网: htt ...
- SQL Server没有足够的内存继续执行程序 (mscorlib)的解决办法
在Microsoft SQL Server Management Studio 中执行较大的sql脚本时,会报没有足够的内存继续执行程序(mscorlib)的错误.如下图所示 解决方法: 使用sqlc ...
- Python——threading模块(线程)
一.threading模块的对象 Thread:表示一个执行线程的对象 Lock:锁 Rlock:可重入锁对象 Condition:条件变量对象,使得一个线程等待另一个线程满足特定的“条件” Even ...