c# pdf to image : Extract data from pdf form SDK Library API .net asp.net windows sharepoint Flask10-part341

CHAPTER
FIFTEEN
MODULAR APPLICATIONS WITH
BLUEPRINTS
New in version 0.7.
Flask uses a concept of blueprints for making application components and supporting
common patterns within an application or across applications. Blueprints can greatly
simplify howlargeapplications work and provide a central means forFlask extensions
to register operations on applications. A Blueprint object works similarly to a Flask
application object, but it is not actually an application. Rather it is a blueprint of how
to construct or extend an application.
15.1 Why Blueprints?
Blueprints in Flask are intended for these cases:
• Factor an applicationinto a set of blueprints. This is ideal for larger applications;
aproject could instantiate an application object, initialize several extensions, and
register a collection of blueprints.
• Register a blueprint on an application at a URL prefix and/or subdomain. Pa-
rameters in the URL prefix/subdomain become common view arguments (with
defaults) across all view functions in the blueprint.
• Register a blueprint multiple times on an application with different URL rules.
• Provide template filters, static files, templates, and other utilities through
blueprints. A blueprint does not have to implement applications or view func-
tions.
• Register a blueprint on an application for any of these cases when initializing a
Flask extension.
Ablueprint in Flask is not a pluggable app because it is not actually an application
–it’s a set of operations which can be registered on an application, even multiple
times. Why not have multiple application objects? You can do that (see Application
Dispatching), but your applications will have separate configs and will be managed at
the WSGI layer.
91
Extract data from pdf form - extract form data from PDF in C#.net, ASP.NET, MVC, Ajax, WPF
Help to Read and Extract Field Data from PDF with a Convenient C# Solution
export pdf form data to excel; extract data from pdf form fields
Extract data from pdf form - VB.NET PDF Form Data Read library: extract form data from PDF in vb.net, ASP.NET, MVC, Ajax, WPF
Convenient VB.NET Solution to Read and Extract Field Data from PDF
extract data from pdf form; extracting data from pdf forms to excel
Blueprints instead provide separation at the Flask level, share application config, and
can change an application object as necessary with being registered. The downside is
that you cannotunregister a blueprintonce an applicationwas created without having
to destroy the whole application object.
15.2 The Concept of Blueprints
The basic concept of blueprints is that they record operations to execute when reg-
istered on an application. Flask associates view functions with blueprints when dis-
patching requests and generating URLs from one endpoint to another.
15.3 My First Blueprint
This is what a very basic blueprint looks like. In this case we want to implement a
blueprint that does simple rendering of static templates:
from flask import Blueprint, render_template, abort
from jinja2 import TemplateNotFound
simple_page = Blueprint(simple_page, __name__,
template_folder=templates)
@simple_page.route(/, defaults={pageindex})
@simple_page.route(/<page>)
def show(page):
try:
return render_template(pages/%s.html page)
except TemplateNotFound:
abort(404)
When you bind a function with the help of the @simple_page.route decorator the
blueprint will record the intention of registering the function show on the application
when it’s later registered. Additionally it will prefix the endpoint of the function with
the name of the blueprint which was given to the Blueprint constructor (in this case
also simple_page).
15.4 Registering Blueprints
So how do you register that blueprint? Like this:
from flask import Flask
from yourapplication.simple_page import simple_page
app = Flask(__name__)
app.register_blueprint(simple_page)
92
VB.NET PDF Form Data fill-in library: auto fill-in PDF form data
from PDF Page. Image: Copy, Paste, Cut Image in Page. Link: Edit URL. Bookmark: Edit Bookmark. Metadata: Edit, Delete Metadata. Form Process. Data: Read, Extract
cannot save pdf form in reader; extract data from pdf form to excel
C# PDF Form Data fill-in Library: auto fill-in PDF form data in C#
Able to fill out all PDF form field in C#.NET. RasterEdge XDoc.PDF SDK package provides PDF field processing features for learn how to fill-in field data to PDF
saving pdf forms in acrobat reader; how to extract data from pdf to excel
If you check the rules registered on the application, you will find these:
[<Rule /static/<filename> (HEAD, OPTIONS, GET) -> static>,
<Rule /<page> (HEAD, OPTIONS, GET) -> simple_page.show>,
<Rule / (HEAD, OPTIONS, GET) -> simple_page.show>]
The first one is obviously from the application ifself for the static files. The other two
are for the show function of the simple_page blueprint. As you can see, they are also
prefixed with the name of the blueprint and separated by a dot (.).
Blueprints however can also be mounted at different locations:
app.register_blueprint(simple_page, url_prefix=/pages)
And sure enough, these are the generated rules:
[<Rule /static/<filename> (HEAD, OPTIONS, GET) -> static>,
<Rule /pages/<page> (HEAD, OPTIONS, GET) -> simple_page.show>,
<Rule /pages/ (HEAD, OPTIONS, GET) -> simple_page.show>]
On top of that you can register blueprints multiple times though not every blueprint
might respond properly to that. In fact it depends on how the blueprint is imple-
mented if it can be mounted more than once.
15.5 Blueprint Resources
Blueprints can provide resources as well. Sometimes you might want to introduce a
blueprint only for the resources it provides.
15.5.1 Blueprint Resource Folder
Like for regular applications, blueprints are considered to be contained in a folder.
While multiple blueprints can originate from the same folder, it does not have to be
the case and it’s usually not recommended.
The folder is inferred from the second argument to Blueprint which is usually
__name__. This argument specifies what logical Python module or package corre-
sponds to the blueprint. Ifit points to an actual Pythonpackage that package (whichis
afolderon the filesystem) is the resource folder. If it’s a module, the package the mod-
ule is contained inwill be the resource folder. You can access the Blueprint.root_path
property to see what the resource folder is:
>>> simple_page.root_path
/Users/username/TestProject/yourapplication
To quickly open sources from this folder you can use the open_resource() function:
with simple_page.open_resource(static/style.css) as f:
code = f.read()
93
VB.NET PDF Text Extract Library: extract text content from PDF
Extract highlighted text out of PDF document. Enable extracting PDF text to another PDF file, and other formats such as TXT and SVG form.
html form output to pdf; extract pdf form data to excel
C# PDF Image Extract Library: Select, copy, paste PDF images in C#
Studio .NET. Extract various types of image from PDF file, like XObject Image, XObject Form, Inline Image, etc. Support .NET WinForms
extract pdf data to excel; how to save fillable pdf form in reader
15.5.2 Static Files
Ablueprint can expose a folder with static files by providing a path to a folder on the
filesystem via the static_folder keyword argument. It can either be an absolute path or
one relative to the folder of the blueprint:
admin = Blueprint(admin, __name__, static_folder=static)
By default the rightmost part of the path is where it is exposed on the web. Because
the folder is called static here it will be available at the location of the blueprint
+ /static. Say the blueprint is registered for /admin the static folder will be at
/admin/static.
The endpoint is named blueprint_name.static so you can generate URLs to it like you
would do to the static folder of the application:
url_for(admin.static, filename=style.css)
15.5.3 Templates
If you want the blueprint to expose templates you can do that by providing the tem-
plate_folder parameter to the Blueprint constructor:
admin = Blueprint(admin, __name__, template_folder=templates)
As for static files, the path can be absolute or relative to the blueprint resource folder.
The template folder is added to the searchpath of templates but with a lower prior-
ity than the actual application’s template folder. That way you can easily override
templates that a blueprint provides in the actual application.
So if you have a blueprint in the folder yourapplication/admin and you
want to render the template ’admin/index.html’ and you have provided
templates as a template_folder you will have to create a file like this:
yourapplication/admin/templates/admin/index.html.
15.6 Building URLs
If you want to link from one page to another you can use the url_for() function just
like you normally would do just that you prefix the URL endpoint with the name of
the blueprint and a dot (.):
url_for(admin.index)
Additionally if you are in a view function of a blueprint or a rendered template and
you want to link to another endpoint of the same blueprint, you can use relative redi-
rects by prefixing the endpoint with a dot only:
94
VB.NET PDF Image Extract Library: Select, copy, paste PDF images
VB.NET. Extract multiple types of image from PDF file in VB.NET, like XObject Image, XObject Form, Inline Image, etc. Support .NET
pdf data extraction tool; how to extract data from pdf file using java
C# PDF Text Extract Library: extract text content from PDF file in
XDoc.PDF ›› C# PDF: Extract PDF Text. C# PDF - Extract Text from PDF in C#.NET. Feel Free to Extract Text from PDF Page, Page Region or the Whole PDF File.
extract data from pdf to excel; make pdf form editable in reader
url_for(.index)
This will link to admin.index for instance in case the current request was dispatched
to any other admin blueprint endpoint.
95
C# PDF Page Extract Library: copy, paste, cut PDF pages in C#.net
Able to extract single or multiple pages from adobe PDF file and save The portable document format, known as PDF document, is a widely-used form of file
java read pdf form fields; extract table data from pdf
.NET PDF Document Viewing, Annotation, Conversion & Processing
Extract bookmark & outlines. Extract hyperlink inside PDF. PDF Write. Form Process. Fill in form data programmatically. Read form data from PDF form file.
vb extract data from pdf; save data in pdf form reader
96
CHAPTER
SIXTEEN
FLASK EXTENSIONS
Flask extensions extend the functionality of Flask in various different ways. For in-
stance they add support for databases and other common tasks.
16.1 Finding Extensions
Flask extensions are listed on theFlaskExtensionRegistry and can be downloaded
with easy_install or pip. If you add a Flask extension as dependency to your
requirements.rst or setup.py file they are usually installed with a simple command
or when your application installs.
16.2 Using Extensions
Extensions typically have documentation that goes along that shows how to use it.
There are no general rules in how extensions are supposed to behave but they are
imported from common locations. If you have an extension called Flask-Foo or
Foo-Flask it will be always importable from flask.ext.foo:
from flask.ext import foo
16.3 Flask Before 0.8
If you are using Flask 0.7 or earlier the flask.ext package will not exist, instead you
have to import from flaskext.foo or flask_foo depending on how the extension is
distributed. If you want to developan applicationthatsupports Flask 0.7 orearlier you
should still import from the flask.ext package. We provide you with a compatibility
module that provides this package for older versions of Flask. You can download it
from github:flaskext_compat.py
And here is how you can use it:
97
import flaskext_compat
flaskext_compat.activate()
from flask.ext import foo
Once the flaskext_compat module is activated the flask.ext will exist and you can
start importing from there.
98
CHAPTER
SEVENTEEN
WORKING WITH THE SHELL
New in version 0.3.
One of the reasons everybody loves Python is the interactive shell. It basically allows
you to execute Python commands in real time and immediately get results back. Flask
itself does not come with an interactive shell, because it does not require any specific
setup upfront, just import your application and start playing around.
There are however some handy helpers to make playing around in the shell a more
pleasant experience. The main issue with interactive console sessions is that you’re
not triggering a request like a browser does which means that g, request and others
are not available. But the code you want to test might depend on them, so what can
you do?
This is where some helper functions come in handy. Keep in mind however that these
functions are not only there for interactive shell usage, but also for unittesting and
other situations that require a faked request context.
Generally it’s recommended that you read the The Request Context chapter of the doc-
umentation first.
17.1 Creating a Request Context
The easiest way to create a proper request context from the shell is by using the
test_request_context method which creates us a RequestContext:
>>> ctx app.test_request_context()
Normally you would use the with statement to make this request object active, but in
the shell it’s easier to use the push() and pop() methods by hand:
>>> ctx.push()
From that point onwards you can work with the request object until you call pop:
>>> ctx.pop()
99
17.2 Firing Before/After Request
By just creating a request context, you still don’t have run the code that is normally
run before a request. This might result in your database being unavailable if you are
connecting to the database in a before-request callback or the current user not being
stored on the g object etc.
This however can easily be done yourself. Just call preprocess_request():
>>> ctx app.test_request_context()
>>> ctx.push()
>>> app.preprocess_request()
Keep in mind that the preprocess_request() function might return a response object,
in that case just ignore it.
To shutdown a request, you need to trick a bit before the after request functions (trig-
gered by process_response()) operate on a response object:
>>> app.process_response(app.response_class())
<Response 0 bytes [200 OK]>
>>> ctx.pop()
The functions registered as teardown_request() are automatically called when the
context is popped. So this is the perfect place to automatically tear down resources
that were needed by the request context (such as database connections).
17.3 Further Improving the Shell Experience
If you like the idea of experimenting in a shell, create yourself a module with stuff you
want to star import into your interactive session. There you could also define some
more helper methods for common things such as initializing the database, dropping
tables etc.
Just put them into a module (like shelltools and import from there):
>>> from shelltools import *
100
Documents you may be interested
Documents you may be interested