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 ...
随机推荐
- iOS开发基础篇-Button基础
一.简单介绍 UIButton 的功能:响应用户操作.显示文字.显示图片.调整内部图片和文字的位置. 二. UIButton 的状态 UIControlStateNormal :普通状态,为默认情 ...
- Surging1.0发布在即,.NET开发者们,你们还在等什么?
Surging1.0发布在即,.NET开发者们,你们还在等什么? 开源,是近三十年来互联网经久不衰的话题.它不仅仅是一种技术分享的形态,更是一种开放,包容,互利共赢的互联网精神. 不到30年前,大神林 ...
- Abp vNext 切换MySql数据库
Abp vNext是Abp的下一代版本,目前还在经一步完善,代码已经全部重写了,好的东西保留了下来,去除了很多笨重的东西,从官宣来看,Abp vNext主要是为了以后微服务架构而诞生的. 从源码来看, ...
- JQuery 获取select 的value值和文本值
<select name="month" id="selMonth"> <option value="1">一 ...
- day03(变量,常量,输入输出,注释,基本数据类型,运算符)
一,复习 ''' 1.语言的分类 -- 机器语言:直接编写0,1指令,直接能被硬件执行 -- 汇编语言:编写助记符(与指令的对应关系),找到对应的指令直接交给硬件执行 -- 高级语言:编写人能识别的字 ...
- rsync用法详细解释
提要 熟悉 rsync 的功能及其特点 掌握 rsync 语法及常用选项的功能 掌握 rsync 命令的三种基本使用方法 掌握如何筛选 rsync 的传输目标 掌握使用 rsync 进行镜像和增量备份 ...
- T66099 小xzy的数对 题解
T66099 小xzy的数对 题目背景 老师带同学参加表演,要求学生两两一组表演,但有些学生一起会发生冲突,现在老师想知道有多少组学生分到一起时不会发生冲突. 题目描述 学生发生冲突当且仅当他们身上的 ...
- 解决win10隔几分钟自动黑屏睡眠的方法
来源:win10总是很快自动休眠怎么解决? - 风格不空格的回答 - 知乎 https://www.zhihu.com/question/39263412/answer/87430653 1.运行注册 ...
- Magento Meigee-Glam 主题的用法
Start起点 Package Structure包装结构 License许可证 Installation安装 What's new Updated!更新了什么! Theme options主题选项 ...
- 题解 UVA1567 【A simple stone game】
题目大意 一堆石子有n个,首先第一个人开始可以去1~