首页 > 软件开发 > 教你django web开发入门

快速发布【软件开发】相关需求,专业顾问为您服务 快速发布

用此手机号发布,您还可以点击 更换

发布需求
请输入正确的手机号
请输入正确的验证码

您是不是要找:

  • 专家问诊,提供专业建议
  • 急速响应,体验省心
  • 根据需求灵活定制解决方案

教你django web开发入门

标签:django web开发入门 2017-8-07 作者:open_tq54_niwe

  1.安装Django


  2.建立工程


  django-admin.py startproject web01


  3.建立应用


  cd ./web01


  django-admin.py startapp blog


  4.配置:settings.py


  创建APP后将APP添加进来


  设置时区,语系等


  数据库引擎配置


  后台管理的开启


  其他


  5.映射:urls.py


  将url地址映射到相应的views方法中(示例):


  url(r'^blog/index/$','blog.views.index')


  6.视图:blog/views.py


  控制视图


  from django.http import HttpResponse


  def index(req):


  return HttpResponse('

Hello,Django!

')


  7.模块:blog/models.py


  定义模型,与数据库打交道


  使用ORM,无需自己写SQL


  class Employee(models.Model):


  name = models.CharField(max_length = 20) #创建字段name


  def __unicode__(self):


  return self.name     #对象以字符串形式输出时返回name


  多对一关系模型


  class Employer(models.Model):


  name = models.CharField(max_length = 30)


  class Employee(models.Model):


  name = models.CharField(max_length = 30)


  employer = models.ForeignKey(Employer)


  多个Employee对应一个Employer


  Employer可通过employee_set查看底下的所有employee。


  多对多关系模型


  class Author(models.Model):


  name = models.CharField(max_length = 30)


  class Book(models.Model):


  name = models.CharField(mat_lenth = 30)


  authors = models.ManyToManyField(Author)


  一个作者可以有多本书,一本书也可以有多个作者。


  我们还可以对数据进行一些操作:


  #模型数据操作


  #方式1


  b = Book()


  b.name = 'python book'


  #方式2


  b = Book(name = 'python book')


  #方式3


  b = Book.objects.create(name = 'python book')


  b.save()


  b.authors.add(jiange)    #增


  b.authors.remove(jiange) #删


  b.authors.all()          #查


  b.authors.filter(name__exact = 'jiange') #过滤查找


  数据库同步


  python manage.py syncdb


  安装,启动MySQL


  yum -y install mysql-server


  yum -y install MySQL-python


  service mysqld start    #启动数据库服务


  mysql -u root -p        #登录数据库


  8. 模板:blog/templates


  存放html等模板文件


  模板变量


  {{title}}


  


  

hello {{user.name}}


  


  变量放在2个大括号中;


  可传递普通变量,字典,列表,对象,方法(无参数,有特定返回值)等


  优先级:字典>属性>方法>列表


  加载,生成,渲染(views.py)


  from django.template import loader,Context


  from django.http import HttpResponse


  def index(req):


  title = 'mypage'


  user = {'name':'jiange','sex':'male'}


  t = loader.get_template('index.html') #将html文件内容加载过来


  c = Context({'title':title,'user':user}) #生成Context对象


  return HttpResponse(t.render(c)) #将c中的数据渲染到t中,并返回


  简化:


  from django.shortcuts import render_to_response


  def index(req):


  title = mypage


  user = {'name':'jiange','sex':'male'}


  render_to_response('index.html',{'title':title,'user':user})


  模板使用流程


  通过以下命令可查看每一步的执行效果


  ipython manage.py shell


  9.运行测试


  python manager.py runserver


  登录127.0.0.1:8000/相应路径查看网页。


  10.模板标签


  {% if ... %}


  do something


  {% else %}


  do something else


  {% endif %}


  {% for ... %}


  do something


  {% endfor %}


  eg:


  {% for author in authors %}


  


  

{{author.name}}


  {% for book in author.book_set.all %}


  

  • {{book}}

  •   <% endfor %>


      


      <% endfor %>


      10.Admin后台管理系统


      管理数据库


      将settings.py中INSTALLED_APPS的django.contrib.admin打开


      将urls.py中的


      from django.contrib import admin


      admin.autodiscover()


      url(r’^admin/’,…)打开


      同步数据库,创建管理员账户


      创建blog/admin.py


      from django.contrib import admin


      from blog.models import User


      admin.site.register(User)    #注册User数据库


      用户管理Auth系统


      11.表单初步


      'views.py'


      from django import forms


      class UserForm(forms.Form):


      name = forms.CharField()


      #网页显示 Name:文本框


      def register(req):


      if req.method == 'POST':


      form = UserForm(req.POST)    #绑定(数据从网页中传过来)


      if form.is_valid():    #验证


      print form.cleaned_data    #获取


      return HttpResponse('ok')


      else:


      form = UserForm()


      return render_to_response('register.html',{'form',form})


      settings.py中,将MIDDLEWARE_CLASSES中的csrf注释掉,简化流程。


      12.文件上传


      朴素的上传方法


      'views.py'


      from django.shorcuts import render_to_response


      from django.http import HttpResponse


      from django import forms


      class UserForm(forms.Form):


      username = forms.CharField()


      headImg = forms.FileField()


      def regist(req):


      if req.method == 'POST':


      uf = UserForm(req.POST,req.FILES)


      if uf.is_valid():


      print uf.cleaned_data['username']


      print uf.cleaned_data['headImg'].name


      fp = file('/uploadfile/'+uf.cleaned_data['headImg'].name, 'wb')    #打开,创建文件


      s = uf.cleaned_data['headImg'].read()    #读取上传的文件的内容到s


      fp.write(s)    #将s写入到我们创建的文件中


      fp.close()


      return HttpResponse('ok')


      else:


      'do something else'


      


      {{uf.as_p}}


      


      


      后台管理的方法


      'models.py'


      class User(models.Model):


      username = models.CharField(mat_length = 30)


      headImg = models.FileField(upload_to = './uploadfile/') #可到settings中修改MEDIA_ROOT设置根目录


      def __unicode__(self):


      return self.username


      之后打开后台admin,同步数据库,blog下建立admin.py等。


      上传的文件存放在'./uploadfile/'下,对应数据库会记录,管理员可通过后台管理。


      用户注册的方法


      from blog.models import User


      ...


      if uf.is_valid():


      user = User()


      user.username = username


      user.headImg = headImg


      user.save()


      13.会话cookie


      会话记录存放在客户端


      14.会话session


      会话记录存放在服务器,客户端的cookie已加密


      上面就是小编为大家整理的关于Django web应用开发入门的文章,希望对大家有帮助。在实际的操作过程中大家可以根据实际情况进行灵活的调整。了解更多咨询请关注猪八戒网。


    最新文章推荐

    软件开发暂无最新文章查看全部推荐文章>

    推荐人才