热门标签 | HotTags
当前位置:  开发笔记 > 后端 > 正文

博客园项目(1)

直接切入正题,手把手直接来写一个类似博客园的项目我们先来新建一个django项目红框的地方,填写你的项目名称,还有项目中的应用.create创建.进入了显示是在urls路由分发

 

 

直接切入正题,手把手直接来写一个类似博客园的项目


alt
="" width="50px" height="50px">div>
<div class="text col-md-11">
本文中的提到GNU扩展时,表示该功能是GNU为sed提供的(即GNU版本的sed才有该功能),一般此时都会说明:如果要写具有可移植性的脚本,应尽量避免在脚本中使用该选项。
本文中的正则表达式几乎和grep中支持的一样。但还是有少数几个是sed自身才能解析的表达式。因此本译文中只对这些sed自身才支持 ...
div>
div>
<div class="row">
<div class="icon">
<span><a href="">Yuan a> 发布于span>
<span class="timer"> 2017-09-05 10:12span>   
<span class="glyphicon glyphicon-comment">span> <a href="">评论12a>
<span class="glyphicon glyphicon-thumbs-up">span> <a href="">赞34a>
div>
div>
li>

ul>
div>

{# 文章区域#}
{# 右侧块区#}
<div class="col-md-3">
<div class="panel panel-default">
<div class="panel-heading">标题一div>
<div class="panel-body">
Panel content
div>
div>

<div class="panel panel-default">
<div class="panel-heading">
<h3 class="panel-title">标题二h3>
div>
<div class="panel-body">
Panel content
div>
div>
div>
{# 右侧块区#}
div>
div>
{#内容区域#}


<script src="{% static 'dist/js/jquery-3.2.1.js' %}">script>
<script src="{% static 'dist/js/bootstrap.js' %}">script>
<script>

script>
body>
html>

 之后是index 的视图函数:

def index(request,**kwargs):
user
=request.session['user']
type_choices
= models.Article.type_choices
print('kwargs',kwargs)
current_type_choices_id
=int(kwargs.get('article_type_id',0))
# 用户选择的ID
article_list = models.Article.objects.filter(**kwargs)
# 文章列表
return render(request,'index.html',{'type_choices':type_choices,'current_type_choices_id':current_type_choices_id,'article_list':article_list,'user':user})

 

 之后是登录页面,也直接上代码:

{% load staticfiles %}
DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Titletitle>
<link href="{% static 'dist/css/bootstrap.css' %}" rel="stylesheet">
<link rel="stylesheet" href="{% static 'dist/css/my_style.css' %}">
head>
<style>
.container
{
margin-top
: 80px;
}

.valid_img
{
width
: 150px;
height
: 40px;

}
.jiancha
{
color
: red;
}

style>
<body>
<div class="container">
<div class="row">
<div class="col-md-6 col-md-offset-3">

<div class="form-group">
<label for="user">USERlabel>
<input type="text" class="form-control" id="user" placeholder="user" name="user">
div>

<div class="form-group">
<label for="pwd">Passwordlabel>
<input type="password" class="form-control" id="pwd" placeholder="pwd" name="pwd">
div>

<div class="form-group">
<label for="v_code">验证码label>
<div class="row">
<div class="col-md-6">
<input type="text" class="form-control" id="v_code" placeholder="verification"
name
="v_code">
div>

<div class="col-md-6">
<img class="valid_img" src="/valid_code/"
alt
="" width="150px" height="50px">
div>
div>
div>

<button type="submit" class="btn btn-default">登录button>
<span class="hide jiancha" >请检查账户与验证码是否正确span>

div>
div>
div>

<script src="{% static 'dist/js/jquery-3.2.1.js' %}">script>
<script src="{% static 'dist/js/bootstrap.js' %}">script>
<script>
$(
'[name=pwd]').val();


$(
'button').click(function () {
$.ajaxSetup({
data: {csrfmiddlewaretoken:
'{{ csrf_token }}'}
});
$.ajax({
url:
'/login/',
type:
'post',
data: {user: $(
"[name='user']").val(), pwd: $("[name='pwd']").val(), v_code: $("[name='v_code']").val()},
success:
function (data) {
data
=JSON.parse(data);
console.log(data[
'statu']);
if (data['statu']==false){
$(
".jiancha").removeClass('hide');
}
else {
location.href
='/index/'
}
}

})
})
script>
body>
html>

 给上login页面的函数:

def login(request):
data
={'statu':False}
print(request.user)
if request.method=='POST':
print(request.POST)
print(request.session["valid_code"])
user
=request.POST.get('user')
pwd
=request.POST.get('pwd')
v_code
=request.POST.get('v_code').upper()
if user=='egon' and pwd=='123' and v_code==request.session["valid_code"].upper():
data[
'statu']=True
request.session[
'user']='egon'

return HttpResponse(json.dumps(data))
return render(request,'login.html')




def valid_code(request):
from PIL import Image,ImageDraw,ImageFont
from io import BytesIO
import random
f
=BytesIO()
img
= Image.new(mode='RGB', size=(120, 30), color=(random.randint(0,255), random.randint(0,255),random.randint(0,255)))
draw
= ImageDraw.Draw(img, mode='RGB')
font
=ImageFont.truetype("test_demo/app01/static/dist/font/Lobster-Regular.ttf",28)
code_list
= []
for i in range(5):
char
= random.choice([chr(random.randint(65, 90)), str(random.randint(1, 9))])
code_list.append(char)
draw.text([i
* 24, 0], char, (random.randint(0, 255), random.randint(0, 255), random.randint(0, 255)),
font
=font)
img.save(f,
"png")
valid_code
=''.join(code_list)
request.session[
"valid_code"]=valid_code
return HttpResponse(f.getvalue())

 顺便还有验证码的.

 

 

 

 

 

今天就暂时到这里,写的真是我自己都看不下去了,还是没有养成写文档的习惯啊


推荐阅读
  • 本文介绍如何在Django项目中利用UpdateView更新数据后,根据主键(pk)自动重定向至对应的DetailView页面,实现流畅的用户交互体验。 ... [详细]
  • 日志记录对于软件开发至关重要,特别是在调试和维护阶段。通过日志,开发者能够追踪错误源头并了解系统的运行状态。本文将探讨如何在Django框架中有效配置和使用日志记录功能。 ... [详细]
  • Django小实战——在线Web计算器(利用Bootstrap进行前端开发)
    Django小实战——在线Web计算器(利用Bootstrap进行前端开发),Go语言社区,Golang程序员人脉社 ... [详细]
  • Django Admin 插件详解与应用
    本文介绍了 Django Admin 的主要功能及其在项目开发中的作用,包括如何通过模型类操作数据库、自定义 Admin 方法以及多种配置选项,旨在帮助开发者快速掌握 Django Admin 的使用技巧。 ... [详细]
  • Django框架的使用教程mysql数据库[三]
    Django的数据库1.在Django_test下的view.py里面model定义模型fromdjango.dbimportmodels#Createyourmodelshere ... [详细]
  • 必知必会13条importosos.environ.setdefault(DJANGO_SETTINGS_MODULE,orm_practice.settings)impo ... [详细]
  • 本文探讨了如何在Django中创建一个能够根据需求选择不同模板的包含标签。通过自定义逻辑,开发者可以在多个模板选项中灵活切换,以适应不同的显示需求。 ... [详细]
  • Django 进阶:缓存与中间件深入解析
    本文详细探讨了Django框架中的缓存机制和中间件的应用,旨在帮助开发者提高应用性能和用户体验。 ... [详细]
  • django项目中使用手机号登录
    本文使用聚合数据的短信接口,需要先获取到申请接口的appkey和模板id项目目录下创建ubtils文件夹,定义返回随机验证码和调取短信接口的函数function.py文件se ... [详细]
  • 本文探讨了在当前开发环境中使用Django 1.5和Python 3.3的情况下,如何解决AWS和GAE仅支持Python 2.7的问题,并提供了相应的解决方案。 ... [详细]
  • Python与PyCharm:理解两者之间的差异
    本文旨在阐述Python编程语言与PyCharm集成开发环境(IDE)之间的主要区别。Python作为一种广泛使用的高级编程语言,以其简洁明了的语法著称;而PyCharm则是专为Python开发者设计的强大工具集。 ... [详细]
  • 本文介绍了如何在 Django 项目中集成和配置 REST Framework,以支持 API 开发。通过在 settings.py 文件中注册 'rest_framework' 应用,可以轻松启用这一功能。 ... [详细]
  • 本文探讨了使用Python实现监控信息收集的方法,涵盖从基础的日志记录到复杂的系统运维解决方案,旨在帮助开发者和运维人员提升工作效率。 ... [详细]
  • 本文回顾了作者在求职阿里和腾讯实习生过程中,从最初的迷茫到最后成功获得Offer的心路历程。文中不仅分享了个人的面试经历,还提供了宝贵的面试准备建议和技巧。 ... [详细]
  • 如何在Django框架中实现对象关系映射(ORM)
    本文介绍了Django框架中对象关系映射(ORM)的实现方式,通过ORM,开发者可以通过定义模型类来间接操作数据库表,从而简化数据库操作流程,提高开发效率。 ... [详细]
author-avatar
christinezzy850
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有