Skip to content

Commit c470cbb

Browse files
Rearrange code (#2)
* Added django-env in .gitignore file * Added Black and its dependencies * Added DeleteView and rearranged a bit * Added load staticfiles instead of static * Commented google app password and hide the secret key * Added media folder * Update views.py * Added staticfiles
1 parent 91306db commit c470cbb

File tree

491 files changed

+56001
-270
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

491 files changed

+56001
-270
lines changed

.gitignore

+1
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,7 @@ venv/
4646
ENV/
4747
env.bak/
4848
venv.bak/
49+
django-env
4950

5051
### macOS ###
5152
# General

blog/templates/blog/about.html

+9-9
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11
{% extends "blog/base.html" %}
22
{% block content %}
3-
<h1>About Page</h1>
4-
<p>"About Us" pages might encompass the values of more than one person or
5-
entity, but they're no more important to the image of a business than your
6-
personal about page. Take Vijay Sehgal's "About Me" page, below.
7-
</p>
8-
<p> Not only has made a blog app but given him a platform where
9-
anybody can write a blog and post it. This is a for demonstration Project.
10-
</p>
11-
{% endblock content %}
3+
<h1>About Page</h1>
4+
<p>"About Us" pages might encompass the values of more than one person or
5+
entity, but they're no more important to the image of a business than your
6+
personal about page. Take Vijay Sehgal's "About Me" page, below.
7+
</p>
8+
<p> Not only has made a blog app but given him a platform where
9+
anybody can write a blog and post it. This is a for demonstration Project.
10+
</p>
11+
{% endblock content %}

blog/templates/blog/base.html

+77-66
Original file line numberDiff line numberDiff line change
@@ -1,83 +1,94 @@
1-
{% load static %}
1+
{% load staticfiles %}
22
<!DOCTYPE html>
33
<html>
4+
45
<head>
56

6-
<!-- Required meta tags -->
7-
<meta charset="utf-8">
8-
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
7+
<!-- Required meta tags -->
8+
<meta charset="utf-8">
9+
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
910

10-
<!-- Bootstrap CSS -->
11-
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css" integrity="sha384-Gn5384xqQ1aoWXA+058RXPxPg6fy4IWvTNh0E263XmFcJlSAwiGgFAW/dAiS6JXm" crossorigin="anonymous">
11+
<!-- Bootstrap CSS -->
12+
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css"
13+
integrity="sha384-Gn5384xqQ1aoWXA+058RXPxPg6fy4IWvTNh0E263XmFcJlSAwiGgFAW/dAiS6JXm" crossorigin="anonymous">
1214

13-
<link rel="stylesheet" type="text/css" href="{% static 'blog/main.css' %}">
15+
<link rel="stylesheet" type="text/css" href="{% static 'blog/main.css' %}">
1416

15-
{% if title %}
16-
<title>Django Blog - {{ title }}</title>
17-
{% else %}
18-
<title>Django Blog</title>
19-
{% endif %}
17+
{% if title %}
18+
<title>Django Blog - {{ title }}</title>
19+
{% else %}
20+
<title>Django Blog</title>
21+
{% endif %}
2022
</head>
23+
2124
<body>
22-
<header class="site-header">
23-
<nav class="navbar navbar-expand-md navbar-dark bg-steel fixed-top">
24-
<div class="container">
25-
<a class="navbar-brand mr-4" href="{% url 'blog-home' %}">Django Blog</a>
26-
<button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarToggle" aria-controls="navbarToggle" aria-expanded="false" aria-label="Toggle navigation">
25+
<header class="site-header">
26+
<nav class="navbar navbar-expand-md navbar-dark bg-steel fixed-top">
27+
<div class="container">
28+
<a class="navbar-brand mr-4" href="{% url 'blog-home' %}">Django Blog</a>
29+
<button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarToggle"
30+
aria-controls="navbarToggle" aria-expanded="false" aria-label="Toggle navigation">
2731
<span class="navbar-toggler-icon"></span>
28-
</button>
29-
<div class="collapse navbar-collapse" id="navbarToggle">
30-
<div class="navbar-nav mr-auto">
31-
<a class="nav-item nav-link" href="{% url 'blog-home' %}">Home</a>
32-
<a class="nav-item nav-link" href="{% url 'blog-about' %}">About</a>
33-
</div>
34-
<!-- Navbar Right Side -->
35-
<div class="navbar-nav">
36-
{% if user.is_authenticated %}
37-
<a class="nav-item nav-link" href="{% url 'post-create' %}">New Post</a>
38-
<a class="nav-item nav-link" href="{% url 'profile' %}">Profile</a>
39-
<a class="nav-item nav-link" href="{% url 'logout' %}">Logout</a>
40-
{% else %}
41-
<a class="nav-item nav-link" href="{% url 'login' %}">Login</a>
42-
<a class="nav-item nav-link" href="{% url 'register' %}">Register</a>
43-
{% endif %}
44-
</div>
32+
</button>
33+
<div class="collapse navbar-collapse" id="navbarToggle">
34+
<div class="navbar-nav mr-auto">
35+
<a class="nav-item nav-link" href="{% url 'blog-home' %}">Home</a>
36+
<a class="nav-item nav-link" href="{% url 'blog-about' %}">About</a>
37+
</div>
38+
<!-- Navbar Right Side -->
39+
<div class="navbar-nav">
40+
{% if user.is_authenticated %}
41+
<a class="nav-item nav-link" href="{% url 'post-create' %}">New Post</a>
42+
<a class="nav-item nav-link" href="{% url 'profile' %}">Profile</a>
43+
<a class="nav-item nav-link" href="{% url 'logout' %}">Logout</a>
44+
{% else %}
45+
<a class="nav-item nav-link" href="{% url 'login' %}">Login</a>
46+
<a class="nav-item nav-link" href="{% url 'register' %}">Register</a>
47+
{% endif %}
4548
</div>
4649
</div>
47-
</nav>
48-
</header>
49-
<main role="main" class="container">
50-
<div class="row">
51-
<div class="col-md-8">
52-
{% if messages %}
53-
{% for message in messages %}
54-
<div class="alert alert-{{ message.tags }}">
55-
{{ message }}
56-
</div>
57-
{% endfor %}
58-
{% endif %}
59-
{% block content %}{% endblock %}
50+
</div>
51+
</nav>
52+
</header>
53+
<main role="main" class="container">
54+
<div class="row">
55+
<div class="col-md-8">
56+
{% if messages %}
57+
{% for message in messages %}
58+
<div class="alert alert-{{ message.tags }}">
59+
{{ message }}
6060
</div>
61-
<div class="col-md-4">
62-
<div class="content-section">
63-
<h3>Our Sidebar</h3>
64-
<p class='text-muted'>You can put any information here you'd like.
65-
<ul class="list-group">
66-
<li class="list-group-item list-group-item-light">Latest Posts</li>
67-
<li class="list-group-item list-group-item-light">Announcements</li>
68-
<li class="list-group-item list-group-item-light">Calendars</li>
69-
<li class="list-group-item list-group-item-light">etc</li>
70-
</ul>
71-
</p>
72-
</div>
61+
{% endfor %}
62+
{% endif %}
63+
{% block content %}{% endblock %}
64+
</div>
65+
<div class="col-md-4">
66+
<div class="content-section">
67+
<h3>Our Sidebar</h3>
68+
<p class='text-muted'>You can put any information here you'd like.
69+
<ul class="list-group">
70+
<li class="list-group-item list-group-item-light">Latest Posts</li>
71+
<li class="list-group-item list-group-item-light">Announcements</li>
72+
<li class="list-group-item list-group-item-light">Calendars</li>
73+
<li class="list-group-item list-group-item-light">etc</li>
74+
</ul>
75+
</p>
7376
</div>
7477
</div>
75-
</main>
78+
</div>
79+
</main>
7680

77-
<!-- Optional JavaScript -->
78-
<!-- jQuery first, then Popper.js, then Bootstrap JS -->
79-
<script src="https://code.jquery.com/jquery-3.2.1.slim.min.js" integrity="sha384-KJ3o2DKtIkvYIK3UENzmM7KCkRr/rE9/Qpg6aAZGJwFDMVNA/GpGFF93hXpG5KkN" crossorigin="anonymous"></script>
80-
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.12.9/umd/popper.min.js" integrity="sha384-ApNbgh9B+Y1QKtv3Rn7W3mgPxhU9K/ScQsAP7hUibX39j7fakFPskvXusvfa0b4Q" crossorigin="anonymous"></script>
81-
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/js/bootstrap.min.js" integrity="sha384-JZR6Spejh4U02d8jOt6vLEHfe/JQGiRRSQQxSfFWpi1MquVdAyjUar5+76PVCmYl" crossorigin="anonymous"></script>
81+
<!-- Optional JavaScript -->
82+
<!-- jQuery first, then Popper.js, then Bootstrap JS -->
83+
<script src="https://code.jquery.com/jquery-3.2.1.slim.min.js"
84+
integrity="sha384-KJ3o2DKtIkvYIK3UENzmM7KCkRr/rE9/Qpg6aAZGJwFDMVNA/GpGFF93hXpG5KkN" crossorigin="anonymous">
85+
</script>
86+
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.12.9/umd/popper.min.js"
87+
integrity="sha384-ApNbgh9B+Y1QKtv3Rn7W3mgPxhU9K/ScQsAP7hUibX39j7fakFPskvXusvfa0b4Q" crossorigin="anonymous">
88+
</script>
89+
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/js/bootstrap.min.js"
90+
integrity="sha384-JZR6Spejh4U02d8jOt6vLEHfe/JQGiRRSQQxSfFWpi1MquVdAyjUar5+76PVCmYl" crossorigin="anonymous">
91+
</script>
8292
</body>
83-
</html>
93+
94+
</html>

blog/templates/blog/home.html

+31-31
Original file line numberDiff line numberDiff line change
@@ -1,37 +1,37 @@
11
{% extends "blog/base.html" %}
22
{% block content %}
3-
{% for post in posts %}
4-
<article class="media content-section">
5-
<img class="rounded-circle article-img" src="{{ post.author.profile.image.url }}">
6-
<div class="media-body">
7-
<div class="article-metadata">
8-
<a class="mr-2" href="{% url 'user-posts' post.author.username %}">{{ post.author }}</a>
9-
<small class="text-muted">{{ post.date_posted | date:"F d, Y" }}</small>
10-
</div>
11-
<h2><a class="article-title" href="{% url 'post-detail' post.id %}">{{ post.title }}</a></h2>
12-
<p class="article-content">{{ post.content }}</p>
13-
</div>
14-
</article>
15-
{% endfor %}
16-
{% if is_paginated %}
3+
{% for post in posts %}
4+
<article class="media content-section">
5+
<img class="rounded-circle article-img" src="{{ post.author.profile.image.url }}">
6+
<div class="media-body">
7+
<div class="article-metadata">
8+
<a class="mr-2" href="{% url 'user-posts' post.author.username %}">{{ post.author }}</a>
9+
<small class="text-muted">{{ post.date_posted | date:"F d, Y" }}</small>
10+
</div>
11+
<h2><a class="article-title" href="{% url 'post-detail' post.id %}">{{ post.title }}</a></h2>
12+
<p class="article-content">{{ post.content }}</p>
13+
</div>
14+
</article>
15+
{% endfor %}
16+
{% if is_paginated %}
1717

18-
{% if page_obj.has_previous %}
19-
<a class="btn btn-outline-info mb-4" href="?page=1">First</a>
20-
<a class="btn btn-outline-info mb-4" href="?page={{ page_obj.previous_page_number }}">Previous</a>
21-
{% endif %}
18+
{% if page_obj.has_previous %}
19+
<a class="btn btn-outline-info mb-4" href="?page=1">First</a>
20+
<a class="btn btn-outline-info mb-4" href="?page={{ page_obj.previous_page_number }}">Previous</a>
21+
{% endif %}
2222

23-
{% for num in page_obj.paginator.page_range %}
24-
{% if page_obj.number == num %}
25-
<a class="btn btn-info mb-4" href="?page={{ num }}">{{ num }}</a>
26-
{% elif num > page_obj.number|add:'-3' and num < page_obj.number|add:'3' %}
27-
<a class="btn btn-outline-info mb-4" href="?page={{ num }}">{{ num }}</a>
28-
{% endif %}
29-
{% endfor %}
23+
{% for num in page_obj.paginator.page_range %}
24+
{% if page_obj.number == num %}
25+
<a class="btn btn-info mb-4" href="?page={{ num }}">{{ num }}</a>
26+
{% elif num > page_obj.number|add:'-3' and num < page_obj.number|add:'3' %}
27+
<a class="btn btn-outline-info mb-4" href="?page={{ num }}">{{ num }}</a>
28+
{% endif %}
29+
{% endfor %}
3030

31-
{% if page_obj.has_next %}
32-
<a class="btn btn-outline-info mb-4" href="?page={{ page_obj.next_page_number }}">Next</a>
33-
<a class="btn btn-outline-info mb-4" href="?page={{ page_obj.paginator.num_pages }}">Last</a>
34-
{% endif %}
31+
{% if page_obj.has_next %}
32+
<a class="btn btn-outline-info mb-4" href="?page={{ page_obj.next_page_number }}">Next</a>
33+
<a class="btn btn-outline-info mb-4" href="?page={{ page_obj.paginator.num_pages }}">Last</a>
34+
{% endif %}
3535

36-
{% endif %}
37-
{% endblock content %}
36+
{% endif %}
37+
{% endblock content %}
+14-14
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,16 @@
11
{% extends "blog/base.html" %}
22
{% block content %}
3-
<div class="content-section">
4-
<form method="POST">
5-
{% csrf_token %}
6-
<fieldset class="form-group">
7-
<legend class="border-bottom mb-4">Delete Post</legend>
8-
<h2>Are you sure you want to delete the post "{{ object.title }}"</h2>
9-
</fieldset>
10-
<div class="form-group">
11-
<button class="btn btn-outline-danger" type="submit">Yes, Delete</button>
12-
<a class="btn btn-outline-secondary" href="{% url 'post-detail' object.id %}">Cancel</a>
13-
</div>
14-
</form>
15-
</div>
16-
{% endblock content %}
3+
<div class="content-section">
4+
<form method="POST">
5+
{% csrf_token %}
6+
<fieldset class="form-group">
7+
<legend class="border-bottom mb-4">Delete Post</legend>
8+
<h2>Are you sure you want to delete the post "{{ object.title }}"</h2>
9+
</fieldset>
10+
<div class="form-group">
11+
<button class="btn btn-outline-danger" type="submit">Yes, Delete</button>
12+
<a class="btn btn-outline-secondary" href="{% url 'post-detail' object.id %}">Cancel</a>
13+
</div>
14+
</form>
15+
</div>
16+
{% endblock content %}

blog/templates/blog/post_detail.html

+16-16
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,20 @@
11
{% extends "blog/base.html" %}
22
{% block content %}
3-
<article class="media content-section">
4-
<img class="rounded-circle article-img" src="{{ object.author.profile.image.url }}">
5-
<div class="media-body">
6-
<div class="article-metadata">
7-
<a class="mr-2" href="{% url 'user-posts' object.author.username %}">{{ object.author }}</a>
8-
<small class="text-muted">{{ object.date_posted | date:"F d, Y" }}</small>
9-
{% if object.author == user %}
10-
<div>
11-
<a class="btn btn-secondary btn-sm mt-1 mb-1" href="{% url 'post-update' object.id %}">Update</a>
12-
<a class="btn btn-danger btn-sm mt-1 mb-1" href="{% url 'post-delete' object.id %}">Delete</a>
13-
</div>
14-
{% endif %}
3+
<article class="media content-section">
4+
<img class="rounded-circle article-img" src="{{ object.author.profile.image.url }}">
5+
<div class="media-body">
6+
<div class="article-metadata">
7+
<a class="mr-2" href="{% url 'user-posts' object.author.username %}">{{ object.author }}</a>
8+
<small class="text-muted">{{ object.date_posted | date:"F d, Y" }}</small>
9+
{% if object.author == user %}
10+
<div>
11+
<a class="btn btn-secondary btn-sm mt-1 mb-1" href="{% url 'post-update' object.id %}">Update</a>
12+
<a class="btn btn-danger btn-sm mt-1 mb-1" href="{% url 'post-delete' object.id %}">Delete</a>
1513
</div>
16-
<h2 class="article-title" href="#">{{ object.title }}</h2>
17-
<p class="article-content">{{ object.content }}</p>
14+
{% endif %}
1815
</div>
19-
</article>
20-
{% endblock content %}
16+
<h2 class="article-title" href="#">{{ object.title }}</h2>
17+
<p class="article-content">{{ object.content }}</p>
18+
</div>
19+
</article>
20+
{% endblock content %}

blog/templates/blog/post_form.html

+13-13
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,16 @@
11
{% extends "blog/base.html" %}
22
{% load crispy_forms_tags %}
33
{% block content %}
4-
<div class="content-section">
5-
<form method="POST">
6-
{% csrf_token %}
7-
<fieldset class="form-group">
8-
<legend class="border-bottom mb-4">Blog Post</legend>
9-
{{ form|crispy }}
10-
</fieldset>
11-
<div class="form-group">
12-
<button class="btn btn-outline-info" type="submit">Post</button>
13-
</div>
14-
</form>
15-
</div>
16-
{% endblock content %}
4+
<div class="content-section">
5+
<form method="POST">
6+
{% csrf_token %}
7+
<fieldset class="form-group">
8+
<legend class="border-bottom mb-4">Blog Post</legend>
9+
{{ form|crispy }}
10+
</fieldset>
11+
<div class="form-group">
12+
<button class="btn btn-outline-info" type="submit">Post</button>
13+
</div>
14+
</form>
15+
</div>
16+
{% endblock content %}

0 commit comments

Comments
 (0)