用python做小说网站
html头部
{% extends 'base.html' %}
{% load static %}
{% block title %}小说首页{% endblock %}
{% block content %}
<div id="headerbox">
<h1 class="logo left"><a href="#"><img src="{% static 'imgs/logo.png' %}">
<p>免费小说网</p></a></h1>
<ul class="nav right">
<li><a href="" data-toggle="modal" data-target="#myModal">
登录
</a></li>
<li><a href="" data-toggle="modal" data-target="#myModal">
注册
</a></li>
<li><a href="" data-toggle="modal" data-target="#myModal">
充值
</a></li>
</ul>
</div>
<div class="nav1">
<ul>
<li><a href="#">在线书库</a>
<ul>
<li><a href="#">绝地求生之冷面枪神</a></li>
<li><a href="#">生死狙击之实验的末日</a></li>
<li><a href="#">午夜电视机</a></li>
<li><a href="#">医神的美女军团</a></li>
</ul>
</li>
<li><a href="#">VIP小说</a>
<ul>
<li><a href="#">漫威之我是大蛇</a></li>
<li><a href="#">百岁之后系统才激活</a></li>
<li><a href="#">末日之神级充钱系统</a></li>
<li><a href="#">重生乾隆王朝</a></li>
</ul>
</li>
<li><a href="#">下载书库</a>
<ul>
<li><a href="#">修真之异界金仙</a></li>
<li><a href="#">柯南之白枫</a></li>
<li><a href="#">僵尸的摄魂笔记</a></li>
<li><a href="#">重生炎尊</a></li>
<li><a href="#">鸿蒙创世决</a></li>
</ul>
</li>
<li><a href="#">包月书库</a>
<ul>
<li><a href="#">龙神系列之火凤天下</a></li>
<li><a href="#">炮灰的腹黑重生</a></li>
<li><a href="#">相守一生</a></li>
<li><a href="#">十二殿之乱世殇</a></li>
<li><a href="#">云之界幻云使</a></li>
</ul>
</li>
<li><a href="#">排行榜</a>
<ul>
<li><a href="#">小说人气排行榜</a></li>
<li><a href="#">小说鲜花排行榜</a></li>
<li><a href="#">小说收藏排行榜</a></li>
<li><a href="#">小说字数排行榜</a></li>
</ul>
</li>
</ul>
</div>
<!-- 模态框(Modal) -->
<div class="modal fade" id="myModal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
<h4 class="modal-title" id="myModalLabel"></h4>
</div>
<div class="modal-body">
<form class="form-horizontal" role="form">
<div class="form-group">
<label for="firstname" class="col-sm-2 control-label">昵称</label>
<div class="col-sm-10">
<input type="text" class="form-control" id="firstname" placeholder="请输入昵称">
</div>
</div>
<div class="form-group">
<label for="lastname" class="col-sm-2 control-label">密码</label>
<div class="col-sm-10">
<input type="text" class="form-control" id="lastname" placeholder="请输入密码">
</div>
</div>
<div class="form-group">
<div class="col-sm-offset-2 col-sm-10">
<div class="checkbox">
<label>
<input type="checkbox">记住密码
</label>
</div>
</div>
</div>
<div class="form-group">
<div class="col-sm-offset-2 col-sm-10">
<button type="submit" class="btn btn-default">登录</button>
<button type="submit" class="btn btn-default">注册</button>
</div>
</div>
</form>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">关闭</button>
</div>
</div><!-- /.modal-content -->
</div><!-- /.modal-dialog -->
</div>
{% endblock %}


css样式
/*@charset "gb2312";*/
/**
+------------------------------------------------------------------------------
* 开始网站样式重写(初始化)
+------------------------------------------------------------------------------
*/
html {
-webkit-text-size-adjust: none; /*解决chrome浏览器下字体不能小于12px*/
}
body {
color: #333;
font-family: "微软雅黑", Verdana, Arial, Helvetica, sans-serif;
background-color: #f8f8f8
}
a {
outline: none;
text-decoration: none;
color: #333
}
a:hover {
text-decoration: none;
color: #4581e6
}
a:active {
star: expression(this.onFocus=this.blur());
}
a:focus {
outline: 0;
}
html {
zoom: 1;
}
html * {
outline: 0;
zoom: 1;
}
html button::-moz-focus-inner {
border-color: transparent !important;
}
body {
font-size: 14px;
}
body, div, dl, dt, dd, ul, ol, li, h1, h2, h3, h4, h5, h6, pre, code, form, fieldset, legend, input, textarea, p, blockquote, th, td {
margin: 0;
padding: 0;
}
table {
/*border-collapse:collapse;border-spacing:0;*/
}
fieldset, a img {
border: 0;
}
address, caption, cite, code, dfn, em, th, var {
font-style: normal;
font-weight: normal;
}
li {
list-style: none;
}
caption, th {
text-align: left;
}
h1, h2, h3, h4, h5, h6 {
font-size: 100%;
font-weight: normal;
}
q:before, q:after {
content: '';
}
input[type="submit"], input[type="reset"], input[type="button"], button {
-webkit-appearance: none; /*去掉苹果的默认UI来渲染按钮*/
}
em, i {
font-style: normal;
}
/**
+------------------------------------------------------------------------------
* 结束网站样式重写(初始化)
+------------------------------------------------------------------------------
*/
/**
+------------------------------------------------------------------------------
* Public Class
+------------------------------------------------------------------------------
*/
.clearfix:after {
content: ".";
display: block;
height: 0;
clear: both;
visibility: hidden;
}
.clearfix {
display: block;
}
.clear {
clear: both;
}
/* 清除浮动*/
.colwrapper {
overflow: hidden;
zoom: 1 /*for ie*/;
margin: 5px auto;
}
.strong {
font-weight: bold;
}
.left {
float: left;
display: inline;
}
.right {
float: right;
display: inline;
}
.center {
margin: 0 auto;
text-align: center;
}
.show {
display: block;
visibility: visible;
}
.hide {
display: none;
visibility: hidden;
}
.block {
display: block;
}
.inline {
display: inline;
}
.transparent {
filter: alpha(opacity=50);
-moz-opacity: 0.5; /** Firefox 3.5即将原生支持opacity属性,所以本条属性只在Firefox3以下版本有效 ***/
-khtml-opacity: 0.5;
opacity: 0.5;
}
.break {
word-wrap: break-word;
overflow: hidden; /*word-break:break-all;*/
}
.tal {
text-align: left
}
.tar {
text-align: right;
}
/*文字两侧对齐*/
.justify {
text-align: justify;
text-justify: distribute-all-lines; /*ie6-8*/
text-align-last: justify; /* ie9*/
-moz-text-align-last: justify; /*ff*/
-webkit-text-align-last: justify; /*chrome 20+*/
}
.toe {
/*超出省略号*/
word-break: keep-all;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
@media screen and (-webkit-min-device-pixel-ratio: 0) {
/* chrome*/
.justify:after {
content: ".";
display: inline-block;
width: 100%;
overflow: hidden;
height: 0;
}
}
em {
font-style: italic !important;
}
strike {
text-decoration: line-through !important;
}
strong {
font-weight: bold !important;
text-indent: 0;
}
u {
text-decoration: underline !important;
}
#headerbox {
float: right;
position: absolute;
z-index: -1; /*有position属性,越大越å 在顶上*/
top: 0;
left: 0;
right: 0;
height: 100px;
background-color: #9E9E9E;
box-shadow: 0 0 20px #999 /*æ·»åŠ é˜´å½±*/
}
#headerbox .logo {
padding: 30px;
}
#headerbox .nav li {
float: left;
line-height: 80px;
margin-right: 40px;
}
#headerbox .nav li a {
color: black;
font-size: 16px;
background-color: #9e9e9e;
}
/*#headerbox .nav li button {*/
/*background-color: #9e9e9e;*/
/*border: none;*/
/*color: black;*/
/*padding: 3px;*/
/*text-align: center;*/
/*text-decoration: none;*/
/*display: inline-block;*/
/*font-size: 15px;*/
/*}*/
.nav1 {
position: absolute;
border-right: none;
overflow: hidden;
float: left;
margin: -10px -10px -10px 200px;
font-size: 15px;
}
.nav1 ul li {
float: left;
}
.nav1 ul li a {
width: 150px;
height: 60px;
text-align: center;
line-height: 50px;
display: block;
border-right: 2px solid #9e9e9e;
color: #666;
}
.nav1 ul li a:hover {
color: #f00;
}
.nav1 ul li ul {
position: fixed;
display: none;
}
.nav1 ul li ul li {
float: none;
}
.nav1 ul li ul li a {
border-right: none;
}
.nav1 ul li:hover ul {
display: block;
}
base
<!DOCTYPE html>
{% load static %}
<html>
<head>
<meta charset="utf-8">
<title>{% block title %}Django 登录与注册{% endblock %}</title>
<link rel="stylesheet" type="text/css" href="{% static 'css/bootstrap.min.css' %}">
<link rel="stylesheet" type="text/css" href="{% static 'css/style.css' %}">
<script type="text/javascript" src="{% static 'js/jquery.min.js' %}"></script>
<script type="text/javascript" src="{% static 'js/bootstrap.min.js' %}"></script>
<script type="text/javascript" src="{% static 'js/layer/layer.js' %}"></script>
<script type="text/javascript" src="{% static 'js/myscript.js' %}"></script>
</head>
<body>
{# {% if user.is_authenticated %}#}
{# <a href="{% url 'logout' %}">登出</a>#}
{# {% else %}#}
{# <a href="{% url 'login' %}">登录</a> / <a href="{% url 'register' %}">登出</a>#}
{# {% endif %}#}
<hr>
{% block content %}
{% endblock %}
</body>
</html>
框架的url
"""novelnet URL Configuration
The `urlpatterns` list routes URLs to views. For more information please see:
https://docs.djangoproject.com/en/1.11/topics/http/urls/
Examples:
Function views
1. Add an import: from my_app import views
2. Add a URL to urlpatterns: url(r'^$', views.home, name='home')
Class-based views
1. Add an import: from other_app.views import Home
2. Add a URL to urlpatterns: url(r'^$', Home.as_view(), name='home')
Including another URLconf
1. Import the include() function: from django.conf.urls import url, include
2. Add a URL to urlpatterns: url(r'^blog/', include('blog.urls'))
"""
from django.conf.urls import url
from django.conf.urls import include
from django.contrib import admin
urlpatterns = [
url(r'^admin/', admin.site.urls),
url(r'^novelnet1/',include('novelnet1.urls'))
]
模块的url
from django.conf.urls import url
from django.contrib.auth import views as auth_views
from django.views.generic.base import TemplateView
from novelnet1 import views as core_views
from . import views
# app_name = 'app1'
urlpatterns = [
# start login
url(r'^$', TemplateView.as_view(template_name='home.html'), name='home'),
url(r'^login/$', auth_views.login, {'template_name': 'login.html'}, name='login'),
url(r'^logout/$', auth_views.logout, {'template_name': 'logged_out.html'}, name='logout'),
# end login
# start register
url(r'^register/$', core_views.register, name='register'),
# end register
url(r'^testform/$', views.testform, name='testform'),
]
用python做小说网站的更多相关文章
- 我用Python实现了一个小说网站雏形
前言 前段时间做了一个爬取妹子套图的小功能,小伙伴们似乎很有兴趣,为了还特意组建了一个Python兴趣学习小组,来一起学习.十个python九个爬,在大家的印象中好像Python只能做爬虫.然而并非如 ...
- python爬虫之小说网站--下载小说(正则表达式)
python爬虫之小说网站--下载小说(正则表达式) 思路: 1.找到要下载的小说首页,打开网页源代码进行分析(例:https://www.kanunu8.com/files/old/2011/244 ...
- 初次尝试python爬虫,爬取小说网站的小说。
本次是小阿鹏,第一次通过python爬虫去爬一个小说网站的小说. 下面直接上菜. 1.首先我需要导入相应的包,这里我采用了第三方模块的架包,requests.requests是python实现的简单易 ...
- 使用django+mysql+scrapy制作的一个小说网站
小说网站用的程序都是千篇一律的,jieqi + guanguang,无聊时间学习python+django,也做了一个小说网站,下面说一说做这个网站一些过程, 制作这种采集站,最要紧的是要有一个好的采 ...
- React + Python 七月小说网 启程(一)
一.为啥要做这个网站 很久没有写技术相关的博客了,最近几个月忙飞,各种工作,技术根本学不完,很难受. 趁着春节期间,终于有空闲时间做自己爱做的事情了,美滋滋. 热爱技术,热爱小说,于是诞生了个这么玩意 ...
- 12岁的少年教你用Python做小游戏
首页 资讯 文章 频道 资源 小组 相亲 登录 注册 首页 最新文章 经典回顾 开发 设计 IT技术 职场 业界 极客 创业 访谈 在国外 - 导航条 - 首页 最新文章 经典回顾 开发 ...
- python urllib2 模拟网站登陆
python urllib2 模拟网站登陆 1. 可用浏览器先登陆,然后查看网页源码,分析登录表单 2. 使用python urllib2,cookielib 模拟网页登录 import urllib ...
- python爬虫小说代码,可用的
python爬虫小说代码,可用的,以笔趣阁为例子,python3.6以上,可用 作者的QQ:342290433,汉唐自远工程师 import requests import refrom lxml i ...
- What exactly can you do with Python? Here are Python’s 3 main applications._你能用Python做什么?下面是Python的3个主要应用程序。
原文链接 Github地址 一.陈述 1,我到底能用Python做什么? 我观察注意到Python三个主要流行的应用: 网站开发: 数据科学——包括机器学习,数据分析和数据可视化: 做脚本语言. 二. ...
随机推荐
- Dynamic Inversions II 逆序数的性质 树状数组求逆序数
Dynamic Inversions II Time Limit: 6000/3000MS (Java/Others) Memory Limit: 128000/64000KB (Java/Other ...
- vue环境搭建
1.Window 上安装Node.js 1.Windows 安装包(.msi) 32 位安装包下载地址 : https://nodejs.org/dist/v4.4.3/node-v4.4.3-x86 ...
- Mysql 协议嗅探
需求 监听通过网卡的所有mysql流量,进行解析,可在不影响现有业务情况下,进行入侵检测(IDS)或数据集成 协议要点 起初发现 用mysql-front访问数据库和mysql 的客户端访问时数据包格 ...
- c# xml操作类 比较齐全
using System; using System.Data; using System.Configuration; using System.Web; using System.Web.Secu ...
- 从实践的角度理解cookie的几个属性
cookie的处理流程大致分为以下几步: 1.浏览器初次请求服务器. 2.服务器认为有必要设置cookie,通过响应报文首部:Set-Cookie告知浏览器,cookie的内容. 3.浏览器本地保存( ...
- c#字符编码,System.Text.Encoding类,字符编码大全:如Unicode编码、GB18030、UTF-8,UTF-7,GB2312,ASCII,UTF32,Big5
本页列出来目前window下所有支持的字符编码 ---c#通过 System.Text.Encoding.GetEncodings()获取,里面可以对其进行查询,筛选,对同一个字符,在不同编码进行查 ...
- javaScript基础的基础
JavaScript是一个脚本语言,需要有宿主文件,他的宿主文件是HTML文件. 与JAVA没有直接关系 一般写在 1.head里面 2.body里面 3.</html>后面 一般写在&l ...
- mb_substr函数
定义和用法 mb_substr() 截取字符串中指定长度字符 注:常用于中文截取,可以避免截取时候出现乱码,即截取半个字符的情况. 类似函数 substr(),iconv_substr() 语法 mb ...
- Struts2 xml 详解
<!-- include节点是struts2中组件化的方式 可以将每个功能模块独立到一个xml配置文件中 然后用include节点引用 --> <include file=" ...
- jfinal编码问题及解决
使用jfinal出现了常见的编码问题情况 public void test() { Random r = new Random(); try { Connection conn = createCon ...