Django学习
Djanago项目搭建
1.典型几个命令–>跟scrapy框架的使用差不多
django-admin startproject guest
python manage.py startapp sign
python3 manage.py runserver
2.Django的app模块目录结构
3.Django视图
1.)路由映射
①from django.urls import path
from django.urls import re_path
from django.urls import include
如
from django.conf.urls import url, include
urlpatterns=[
re.path(r'^api/',include('sign.urls',name="sign")),
]
from django.conf.urls improt url
from sign import views_if
urlpattern=[
re_path(r'^get_book',views.getbook,name="sign")
]
两种views显示内容的方式
1.利用from django.http import HttpResponse的形式去显示内容
2.利用模板渲染的形式去显示内容
from django.shortcuts import render
return render(request,"index.html")
2.)登录功能实现
①方法使用-->get方法和post方法,调用行动的-->form标签 html设置
<form method="get" action="/login_action/">
</form>
②标签使用
{% csrf_token %}
常量使用
{{error}}
③cookie和session的使用
response.set_cookie('user',username,3600)
request.session['user']=username
reqeust.COOKIES.get('user','')
reqeust.seesion.get('user','')
注意点
如果是使用session的话 需要设置同步数据库 常用sqlites
python3 manage.py migrate
④设置重定向页面的
HttpResponseRedirect('/envent_manage')
3.)Django自带认证系统
python3 manage.py createsuperuser
user=auth.authenticate(username=username,password=password)
if user is not None:
auth.login(request,user)
url(r'^accounts/login/$',views.index)
4.Django模型
1).创建一个模型-->(含义一般一个模型可以理解为一个数据库的表)
from django.db.models.Model
class Event(models.Model):
name=models.CharField(max_length=100)
creat_time=model.DateTimeField(auto_now=True)
def __str__(self):
return self.name
2.)admin 后台管理的模块处理
class EventAdmin(admin.ModelAdmin):
list_display=['name','status','start_time','id']
search_fields=['name']
list_filter=['status']
admin.site.register(Event)
3.)数据操作处理
方法1
e1=Envet(name='测试')
e1.save()
方法2
Event.objects.create(name='测试')
g=Guset.object.get(phone='13612121121')
g2.delete()
g2.name='测试2'
g2.uptade()
table.object.get()
table.object.all()
table.object.filter()
即在views.py文件获取数据然后进行输出到文件中去
def event_manage(request):
username=request.session.get('user','')
return render(request,"envent_manage.html",{"user":username})
5.Django模板
1).结合bootsrap
{% load bootstrap3 %}
{% bootstrap_css %}
{% bootstrap_javascript %}
{% for envent in envets %}
2.)结合分页器使用
>>> from django.core.paginator import Paginator
>>> list1=[i for i in range(0,150)]
>>> page1=Paginator(list1,10)
>>> print(page1.count)
150
>>> print(page1.num_pages)
15
>>> print(page1.page_range)
range(1, 16)
>>> print(page1.page(1))
<Page 1 of 15>
>>> page1.page(1).object_list
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> page1.page(2).object_list
[10, 11, 12, 13, 14, 15, 16, 17, 18, 19]
>>> page1.page(2).next_page_number()
3
>>> page1.page(2).has_next()
True
>>> page1.page(2).has_previous()
True
>>> page1.page(2).has_other_pages()
True
>>> page1.page(2).start_index()
11
>>> page1.page(2).end_index()
20
>>> page1.page(0)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
...
raise EmptyPage(_('That page number is less than 1'))
django.core.paginator.EmptyPage: <exception str() failed>
>>> page1.page(15)
<Page 15 of 15>
典型分页器使用案例
6.mysql服务器搭建
mysql搭建服务器的几个坑
坑①
注意mysql版本的问题
如果版本有问题会出现mysql服务
这种情况
本地计算机上的mysql服务器启动后停止
坑②
对于安装mysql文件一点要在mysql安装目录下的bin进行安装
坑③
对于data目录下的是保存日志登录这些的
坑④路径必须带上双引号-->我是这么解决的 完美解决问题
修改数据库连接密码
set password for username @localhost = password(newpwd);
导入数据 导入excel数据思路 导入.sql格式数据方法
7.项目部署
django项目部署方案 mysql服务器安装包下载 问题1的情况以及成功解决问题的安装方法 错误评论区典型的几种情况
根据小明师傅的项目rdadme直接进行搭建
注意事项
①在导入数据库时可能会遇到mysql服务器版本不兼容的情况
https://blog.csdn.net/westworld2017163com/article/details/83150628
解决方法
将编码改为这个
utf8mb4_general_ci
②
数据库表设置格式要设置为utf-8
否则会爆错
设置方法
https://blog.csdn.net/L4WDgosh/article/details/118280140
导入就不说了 这里进行导入就好了
|